Apparatus and method for providing boost protection logic

ABSTRACT

An apparatus, such as a haptic-enabled device, and a method for providing boost protection logic are presented. The method comprises receiving, by a control circuit of the apparatus, a nonzero drive signal to be used by the haptic actuator to generate a haptic effect. The control circuit causes a first portion of the nonzero drive signal to be applied to the haptic actuator in a boost mode. The control circuit detects a boost duration exceeding a first defined time threshold, such as a boost timeout threshold, or detects an accumulated boost time exceeding the first defined time threshold. In response, the control circuit causes a second portion of the nonzero drive signal to be applied to the haptic actuator in an amplitude-limited mode.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/538,768, filed Jul. 30, 2017 and to U.S. Provisional PatentApplication No. 62/554,708, filed Sep. 6, 2017, the entire contents ofwhich are incorporated herein by reference.

FIELD OF THE INVENTION

The present invention is directed to an apparatus and method forproviding boost protection logic for protecting a haptic actuator, suchas a haptic actuator in a mobile device, user interface device, wearabledevice, or other consumer electronics.

BACKGROUND

As electronic user interface systems become more prevalent, the qualityof the interfaces through which humans interact with these systems isbecoming increasingly important. Haptic feedback, or more generallyhaptic effects, can improve the quality of the interfaces by providingcues to users, providing alerts of specific events, or providingrealistic feedback to create greater sensory immersion within a virtualenvironment. Examples of haptic effects include kinesthetic hapticeffects (such as active and resistive force feedback), vibrotactilehaptic effects, and electrostatic friction haptic effects.

SUMMARY

The following detailed description is merely exemplary in nature and isnot intended to limit the invention or the application and uses of theinvention. Furthermore, there is no intention to be bound by anyexpressed or implied theory presented in the preceding technical field,background, brief summary or the following detailed description.

One aspect of the embodiments herein relate to a method and apparatusfor applying one or more nonzero drive signals to a haptic actuator. Themethod comprises receiving, by a control circuit of the apparatus, anonzero drive signal to be used by the haptic actuator to generate ahaptic effect, wherein the haptic actuator has a defined rated maximumvoltage or a defined maximum rated current. The method further comprisescausing, by the control circuit, a first portion of the nonzero drivesignal to be applied to the haptic actuator in a boost mode, in whichthe first portion of the nonzero drive signal is scaled to a boostedvoltage range or boosted current range, wherein an absolute value of aminimum value or maximum value of the boosted voltage range or boostedcurrent range exceeds the defined rated maximum voltage or the definedrated maximum current of the haptic actuator. The control circuitdetects a boost duration exceeding a first defined time threshold,wherein the boost duration is a duration since a start time of the boostmode. In response to detecting the boost duration exceeding the firstdefined time threshold, the control circuit causes a second portion ofthe nonzero drive signal to be applied to the haptic actuator in anamplitude-limited mode, in which the second portion of the nonzero drivesignal is scaled to an amplitude-limited voltage range oramplitude-limited current range, wherein an absolute value of a minimumvalue or maximum value of the amplitude-limited voltage range or of theamplitude-limited current range does not exceed the defined ratedmaximum voltage or defined rated maximum current of the haptic actuator.

One aspect of the embodiments herein relate to a method and apparatusfor applying one or more nonzero drive signals to a haptic actuator, themethod comprising: receiving, by a control circuit of the apparatus, anonzero drive signal to be applied to the haptic actuator, wherein thehaptic actuator has a defined rated maximum voltage or a defined ratedmaximum current. The control circuit further causes the nonzero drivesignal to be applied to the haptic actuator in a boost mode, in whichthe nonzero drive signal is scaled to a boosted voltage range or boostedcurrent range, wherein an absolute value of a minimum value or maximumvalue of the boosted voltage range or boosted current range exceeds thedefined rated maximum voltage or defined rated maximum current of thehaptic actuator. The method further comprises detecting, after an end ofthe nonzero drive signal, a boost duration exceeding a first definedtime threshold, wherein the boost duration is a duration since a starttime of the boost mode; and detecting, after the end of the nonzerodrive signal, a subsequent nonzero drive signal to be applied to thehaptic actuator, wherein the nonzero drive signal and the subsequentnonzero drive signal are consecutive nonzero drive signals. The controlcircuit further causes the subsequent nonzero drive signal to be appliedin an amplitude-limited mode, in which the second portion of the nonzerodrive signal is scaled to an amplitude-limited voltage range oramplitude-limited current range, wherein an absolute value of a minimumvalue or maximum value of the amplitude-limited voltage range or of theamplitude-limited current range does not exceed the defined ratedmaximum voltage or defined rated maximum current of the haptic actuator.

One aspect of the embodiments herein relates to a method and apparatusfor applying one or more nonzero drive signals to a haptic actuator, themethod comprising: receiving, by a control circuit of the apparatus, anonzero drive signal to be applied to a haptic actuator, wherein thehaptic actuator has a defined rated maximum voltage or a defined ratedmaximum current. The control circuit causes the nonzero drive signal tobe applied in a boost mode, in which signal values of the nonzero drivesignal are scaled to a boosted voltage range or a boosted current range,wherein an absolute value of a minimum value or maximum value of theboosted voltage range or boosted current range exceeds the defined ratedmaximum voltage or defined rated maximum current of the haptic actuator,and wherein the nonzero drive signal is one of one or more nonzero drivesignals that are applied in the boost mode. The method further comprisestracking an accumulated boost time, wherein the accumulated boost timeis a cumulative amount of time that the control circuit has spentapplying the one or more nonzero drive signals while in the boost mode,wherein the accumulated boost time is measured from a most recent resetof the accumulated boost time or after the most recent reset thereof.The method further comprises tracking an accumulated heating time,wherein the accumulated heating time is: i) a cumulative amount of timein which the one or more nonzero drive signals in the boost mode havebeing applied to the haptic actuator at voltages or currents thatexceed, in absolute value, the defined rated maximum voltage or definedrated maximum current, or ii) a second time that is determined byscaling the cumulative amount of time in which the one or more drivesignals in the boost mode have been applied at voltages or currents thatexceed in absolute value the defined rated maximum voltage or definedrated maximum current. The control circuit further detects theaccumulated boost time exceeding a first defined time threshold while afirst portion of the nonzero drive signal is being applied in the boostmode. In response to detecting the accumulated boost time exceeding thefirst defined time threshold, the control circuit causes a secondportion of the nonzero drive signal to be applied in anamplitude-limited mode, in which the second portion of the nonzero drivesignal is scaled to an amplitude-limited voltage range oramplitude-limited current range, wherein an absolute value of a minimumvalue or maximum value of the amplitude-limited voltage range or of theamplitude-limited current range does not exceed the defined ratedmaximum voltage or defined rated maximum current of the haptic actuator.

One aspect of the embodiments herein relates to a method and apparatusfor applying one or more nonzero drive signals to a haptic actuator, themethod comprising: receiving, by a control circuit of the apparatus, anonzero drive signal to be applied to a haptic actuator, wherein thehaptic actuator has a defined rated maximum voltage or current. Thecontrol circuit causes the nonzero drive signal to be applied in a boostmode, in which signal values of the nonzero drive signal are scaled to aboosted voltage range or boosted current range, wherein an absolutevalue of a minimum value or maximum value of the boosted voltage rangeor boosted current range exceeds the defined rated maximum voltage orcurrent of the haptic actuator, and wherein the nonzero drive signal isone of one or more nonzero drive signals that are applied in the boostmode. The method further comprises tracking an accumulated boost time,wherein the accumulated boost time is a cumulative amount of time thatthe control circuit has spent applying the one or more nonzero drivesignals while in the boost mode, wherein the accumulated boost time ismeasured from a most recent reset of the accumulated boost time or afterthe most recent reset thereof. The method further comprises tracking anaccumulated heating time, wherein the accumulated heating time is: i) acumulative amount of time in which the one or more nonzero drive signalsin the boost mode have being applied to the haptic actuator at voltagesor currents that exceed, in absolute value, the defined rated maximumvoltage or current, or ii) a second time that is determined by scalingthe cumulative amount of time in which the one or more drive signals inthe boost mode have been applied at voltages or currents that exceed inabsolute value the defined rated maximum voltage or current. The controlcircuit detects the accumulated boost time exceeding a first definedtime threshold while the nonzero drive signal is being applied in theboost mode. The control circuit further receives, after an end of thenonzero drive signal, a subsequent nonzero drive signal. The methodfurther comprises causing the subsequent nonzero drive signal to beapplied in an amplitude-limited mode, in which the subsequent nonzerodrive signal is scaled to an amplitude-limited voltage range oramplitude-limited current range, wherein an absolute value of a minimumvalue or maximum value of the amplitude-limited voltage range or of theamplitude-limited current range does not exceed the defined ratedmaximum voltage or current of the haptic actuator, wherein none of thenonzero drive signal is applied in the amplitude-limited mode.

Features, objects, and advantages of embodiments hereof will becomeapparent to those skilled in the art by reading the following detaileddescription where references will be made to the appended figures.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other features and advantages of the invention will beapparent from the following description of embodiments hereof asillustrated in the accompanying drawings. The accompanying drawings,which are incorporated herein and form a part of the specification,further serve to explain the principles of the invention and to enable aperson skilled in the pertinent art to make and use the invention. Thedrawings are not to scale.

FIGS. 1, 1A, and 1B illustrate block diagrams of control circuit forproviding boost protection logic, according to embodiments hereof.

FIG. 1C illustrates examples of haptic-enabled devices, according toembodiments hereof.

FIG. 2A illustrates various nonzero drive signals, according to anembodiment hereof.

FIG. 2B illustrates a waveform for a nonzero drive signal, according toan embodiment hereof.

FIGS. 3 and 4 illustrate state machines that may be implemented by boostprotection logic, according to embodiments hereof

FIGS. 5-7 illustrate applying various nonzero drive signals in a boostmode or an amplitude-limited mode, according to embodiments hereof.

FIG. 8 illustrates a state machine that may be implemented by boostprotection logic, according to embodiments hereof.

FIGS. 9 and 10 illustrate applying various nonzero drive signals in aboost mode or an amplitude-limited mode, according to embodimentshereof.

FIG. 11 illustrates a state machine that may be implemented by boostprotection logic, according to embodiments hereof.

FIGS. 12A, 12B, 13, 14, 15A, 15B, and 16 illustrate various methodsimplemented by boost protection logic, according to embodiments hereof.

FIG. 17 illustrate an accumulated boost time and accumulated heatingtime for a nonzero drive signal that is applied in a boost mode,according to an embodiment hereof

FIGS. 18-20 illustrate methods for applying various nonzero drivesignals based on an accumulated boost time, an accumulated heating time,and/or an accumulated cooling time, according to embodiments hereof.

FIGS. 21A-21C illustrate applying various nonzero drive signals in aboost mode or an amplitude-limited mode, according to embodimentshereof.

FIGS. 22A and 22B illustrate applying a nonzero drive signal until azero crossing point is reached, or until a defined prolonged total boosttime threshold has been reached, according to embodiments hereof.

FIG. 23 illustrates a method for applying a nonzero drive signal in aboost mode, according to an embodiment hereof.

FIGS. 24A illustrates a nonzero drive signal that is applied in theboost mode, according to an embodiment hereof.

FIG. 24B illustrates nonzero drive signals that are applied in the boostmode or the amplitude-limited mode, according to an embodiment hereof.

FIGS. 25 and 26 illustrate nonzero drive signals that are applied in theboost mode or the amplitude-limited mode, according to an embodimenthereof.

FIGS. 27A and 27B illustrate a method for applying a nonzero drivesignal based on an accumulated boost time, an accumulated heating time,and/or an accumulated cooling time, according to an embodiment hereof.

FIGS. 28A and 28B illustrate nonzero drive signals having a ramp-upportion and/or a ramp-down portion, according to embodiments hereof.

DETAILED DESCRIPTION

The following detailed description is merely exemplary in nature and isnot intended to limit the invention or the application and uses of theinvention. Furthermore, there is no intention to be bound by anyexpressed or implied theory presented in the preceding technical field,background, brief summary or the following detailed description.

Embodiments herein relate to boost protection logic that protects ahaptic actuator from damage when the haptic actuator is beingoverdriven. Overdriving the haptic actuator may refer to, e.g., drivingthe haptic actuator with a drive signal (e.g., voltage signal or currentsignal) that exceeds a rated maximum parameter value (e.g., ratedmaximum voltage or rated maximum current) of the haptic actuator. Whenoverdriving the haptic actuator, the drive signal that is applied to thehaptic actuator may be, e.g., a boosted drive signal. For instance, anamplitude modification circuit or module, such as a boost circuit, mayamplify a drive signal to exceed the rated maximum voltage of the hapticactuator. More generally speaking, the amplitude modification circuitmay map a drive signal to a boosted range, such as a boosted voltagerange or boosted current range, that exceeds a rated maximum voltage orrated maximum current of the haptic actuator, in order to generate aboosted drive signal, which may also be referred to as a scaled drivesignal or mapped drive signal. The boosted drive signal may desirablycreate a crisp and strong haptic effect, such as a haptic effect forsimulating a mechanical click of a virtual home button displayed on thetouchscreen of a mobile device. This boosting of the drive signal,however, increases a risk of damaging the actuator from, e.g.,overheating. Thus, embodiments herein relate to a boost protectionlogic, implemented in hardware or software, that can boost a drivesignal while taking measures to protect the haptic actuator from damage.

One aspect of the embodiments of the boost protection logic hereinrelates to exiting a boost mode if an amplitude modification circuit ormodule, or more generally a control circuit, has been operating in theboost mode for too long. The boost mode may refer to a mode in which adrive signal is scaled or otherwise mapped to a boosted voltage range orboosted current range. More generally speaking, the boost mode may be amode in which a signal value of a voltage signal or current signal beingapplied to a haptic actuator is allowed to exceed a rated maximumvoltage or rated maximum current of the haptic actuator. The scaling canbe done by, for instance, multiplying signal values of a first drivesignal to produce a boosted drive signal. The first drive signal canalready be a voltage signal or current signal, or can be a signal whosesignal values are dimensionless. In the latter case, the control circuitmay map the dimensionless signal values to voltage values or currentvalues. In the boost mode, some of the voltage values or current valuesto which the signal values of the first drive signal are mapped mayexceed the defined rated maximum voltage or defined rated maximumcurrent of the haptic actuator. In one instance, the boost protectionlogic may cause the control circuit to exit the boost mode if a durationspent in the boost mode (which may be referred to as a boost duration)exceeds a boost timeout threshold. If this condition occurs while adrive signal is still being applied to a haptic actuator, a remainingportion of the drive signal may be applied in an amplitude-limited mode.In the amplitude-limited mode, the drive signal may be scaled orotherwise mapped to an amplitude-limited voltage range oramplitude-limited current range that does not exceed the rated maximumvoltage or rated maximum current of the haptic actuator. For instance,the maximum voltage or current value that is permitted to be applied tothe haptic actuator in the amplitude-limited mode may be limited to100%, 80%, 75%, or some other percentage of the rated maximum voltage orrated maximum current of the haptic actuator.

In an embodiment, if the boost duration reaches or exceeds the boosttimeout threshold, the control circuit may transition to anamplitude-limited mode, in which the control circuit limits the signalamplitude, or more generally signal value, that is applied to the hapticactuator. The signal value may be limited so that it does not exceed therated maximum voltage or rated maximum current of the haptic actuator.By limiting the signal value that is applied to the haptic actuator inthe amplitude-limited mode, the haptic actuator may cool in temperature,or at least refrain from increasing in temperature. After the drivesignal ends, the control circuit may transition from theamplitude-limited mode to a cool-down mode. In some cases, the controlcircuit may be able to transition to the cool-down mode without enteringthe amplitude-limited mode, by entering the cool-down mode from a boostcool-down mode, as discussed below. The cool-down mode may be a mode inwhich the haptic actuator is at rest or, more generally speaking, is notbeing driven. In the cool-down mode, the control circuit may wait for asubsequent drive signal. The cool-down mode may force all subsequentdrive signals to be applied in the amplitude-limited mode untilsufficient time is spent in the cool-down mode. For instance, a durationspent in the cool-down mode may have to reach or exceed a cooling timethreshold, such as 90 ms, before the control circuit can re-enter theboost mode. In some cases, the boost timeout threshold may have to besatisfied by a continuous duration spent in the cool-down mode, whichmay be a duration of a time period that is uninterrupted by any drivesignal during the period. Waiting in this manner in the cool-down modemay thus prevent the haptic actuator from overheating, and in some casesmay allow the haptic actuator to cool in temperature.

In an embodiment, the boost mode, amplitude-limited mode, and cool-downmode may form part of a state machine that is implemented by a controlcircuit to determine how to drive a haptic actuator. As stated above,the boost mode and the amplitude-limited mode may dictate a voltagerange or current range in which the haptic actuator is driven. Thecontrol circuit may transition from the boost mode to theamplitude-limited mode, and from the amplitude-limited mode to acool-down mode. The cool-down mode may control whether the controlcircuit returns to the amplitude-limited mode or whether the controlcircuit instead returns to the boost mode. In an embodiment, the statemachine may have other modes (also referred to as states), such as anextended boost mode or boost cool-down mode, which are discussed in moredetail below.

In an embodiment, transitions among the various modes (e.g., boost mode,amplitude-limited mode, cool-down mode) may be controlled by a durationspent in some of the modes. For instance, the transition from the boostmode to the amplitude-limited mode may be triggered based on a durationspent by a control circuit in the boost mode (i.e., a boost duration),and whether the duration has reached or exceeds a boost timeoutthreshold. In some cases, the boost duration may span multiple drivesignals, and may count time periods separating the multiple drivesignals, in which the haptic actuator is undriven.

In an embodiment, the transition from the cool-down mode to the boostmode may be triggered based in part on a duration in which the hapticactuator has been cooling in temperature or, more generally, in whichthe haptic actuator has been at rest. In some cases, this duration maybe a duration since an end of the most recent drive signal. Thisduration may correspond to a duration in which the control circuit hasspent in a cool-down period, which may cover a time period spent in thecool-down mode and in a boost cool-down mode (the boost cool-down modeis discussed below in more detail). In some cases, this duration mayrefer to a continuous time period (also referred to as a continuousduration) in the cool-down period. Such cases thus may require a coolingtime threshold to be exceeded by a duration of a continuous cool-downtime period, such that the haptic actuator has been continuously at restfor at least a cooling time threshold before it can be driven in theboost mode again.

In an embodiment, the transition between various modes may be based onan accumulated boost time, which may be a cumulative amount of time inwhich a control circuit has spent in the boost mode while applying oneor more drive signals. The transition may also be based on anaccumulated heating time and an accumulated cooling time. Theaccumulated heating time may be a cumulative amount of time in whichsignal values have been scaled to a value that exceeds a rated maximumvoltage or rated maximum current of a haptic actuator. The accumulatedcooling time may be a cumulative amount of time in which the hapticactuator has been at rest or otherwise undriven. In some cases, thesecumulative times may be tracked via a timer, and may span multiple drivesignals or span multiple cooling periods (also referred to as restperiods).

In an embodiment, when the accumulated boost time reaches or exceeds atime threshold, such as a boost timeout threshold, the control circuitmay begin to transition from applying a drive signal in the boost modeto applying the drive signal in an amplitude-limited mode. In anembodiment, the accumulated heating time may be used to track how longthe one or more drive signals, while applied in the boost mode, haveactually been applied to the haptic actuator at a level that exceededthe defined rated maximum voltage or current. In an embodiment, theaccumulated heating time may be used to set a cooling time threshold,which may be, e.g., a minimum cumulative amount of time that the hapticactuator has to cool or otherwise remain undriven before any more drivesignals can be applied in the boost mode again. The control circuit maycontinue applying drive signals in the amplitude-limited mode until anaccumulated cooling time reaches or exceeds the cooling time threshold.When the accumulated cooling time does exceed the cooling timethreshold, the control circuit may reset the accumulated cooling time,the accumulated heating time, and the accumulated boost time t₀, e.g.,zero. Because the accumulated boost time is reset to zero or to anotherreset value that is less than the boost timeout threshold, the controlcircuit may continue to apply drive signals in the boost mode until theaccumulated boost time reaches the boost timeout threshold again.

Various embodiments of the present disclosure are illustrated in moredetail in the figures. FIG. 1 illustrates a haptic-enabled device 10that includes a control circuit 16 and a haptic actuator 18. In anembodiment, the haptic-enabled device 10 may be a user interface device,such as a mobile phone, tablet computer, laptop, game consolecontroller, wearable device (e.g., a virtual reality head-mounteddevice, or a smart watch), or any other user interface device. Thecontrol circuit 16 may be a microprocessor(s), a field programmable gatearray (FPGA) chip, a programmable logic array (PLA) chip, a digitalsignal processor, or any other control circuit. The control circuit 16may be a general-purpose control circuit, such as a general purposeprocessor for the haptic-enabled device 10, or may be a control circuitdedicated to generating haptic effects.

In an embodiment, the control circuit 16 may be configured to drive thehaptic actuator 18 or cause the haptic actuator 18 to be driven. Morespecifically, the control circuit 16 may cause the haptic actuator 18 tobe driven in a boost mode or in an amplitude-limited mode. In anembodiment, the control circuit 16 may be configured to detect orotherwise receive a drive signal for a haptic effect from a memory orother source, and scale or otherwise map the drive signal to a boostedvoltage range or boosted current range, or an amplitude-limited voltagerange or amplitude-limited current range. The control circuit 16 maythen drive the haptic actuator 18 with the drive signal after it hasbeen scaled, or cause another circuit to drive the haptic actuator 18with the scaled drive signal.

In one example, the drive signal may be a waveform that the controlcircuit 16 is configured to retrieve or otherwise receive from memory.The waveform may, e.g., have been previously created by an author andstored in memory. In some cases, the drive signal that is retrieved maycomprise a plurality of signal values, which may also be referred to assignal samples. Each signal value may, e.g., be an 8-bit digital valuethat is in a range of 0 to 255. In such a scenario, the signal valuethat is retrieved may be a dimensionless value. The control circuit 16may scale or otherwise map the signal value to a voltage value orcurrent value. For instance, the range of 0-255 for the 8-bit digitalvalue may be linearly scaled to a voltage range of 0-5V by multiplyingsignal values that are retrieved by 5/255 V, or about 0.0196 V. In someinstances, the voltage range may include negative voltages, such as arange from −5V to 5V. In such instances, the signal values retrieved bythe control circuit 16 may be subtracted by 127, and then multiplied by5/127 V. In another example, the control circuit 16 may retrieve orotherwise receive signal values that already have units of voltage orcurrent. For instance, the control circuit 16 may receive a sinusoidaldrive signal having signal values that are in a range of 0-5 V. In thisexample, the control circuit 16 may scale the drive signal bymultiplying its signal values by a multiplication factor, such as 0.5,1, 2, 3, or some other number. In an embodiment, the maximum value ofthe boosted voltage range may be, e.g., 2 or 3 times the rated maximumvoltage or rated maximum current of the haptic actuator 18.

As stated above, the voltage range or current range to which a drivesignal is scaled to may be a boosted voltage range or boosted currentrange, or may be an amplitude-limited voltage range or current range.The boosted voltage range or boosted current range may be a range inwhich an absolute value of a minimum value or maximum value thereofexceeds a defined rated maximum voltage or defined rated maximum currentof a haptic actuator. In some cases, the defined rated maximum voltageor current may be a maximum voltage or current at which the hapticactuator can be sustainably operated without overheating. This quantitymay be defined in, e.g., a data sheet provided by a manufacturer of thehaptic actuator. As an example, if a haptic actuator has a defined ratedmaximum voltage of 5 V, a boosted voltage range may be, e.g., a range of−8 V to 8 V, a range of −10 V to 0 V, or a range of 0 V to 10 V. Theamplitude-limited voltage range or current range may be a range in whichan absolute value of a minimum value or maximum value of the range doesnot exceed the defined rated maximum voltage or current of the hapticactuator. In the above example, the amplitude-limited range may be,e.g., a range of 0-5 V, a range of −2.5 V to 2.5 V, or a range of 0-2.5V.

In an embodiment, the drive signals that are scaled or applied in theembodiments herein may be nonzero drive signals. As discussed below inmore detail, a nonzero drive signal may refer to a drive signal havingnonzero signal values and excluding a finite duration of zero value (or,more generally speaking, a drive signal having signal values that exceeda defined noise threshold, and excluding a finite duration of onlynoise). In other words, a finite duration of zero value, or of justnoise, may be considered a cooling period (also referred to as a restperiod) between two nonzero drive signals.

FIG. 1A illustrates a haptic-enabled device 100 that is an embodiment ofthe haptic-enabled device 10. The haptic-enabled device 100 may be anapparatus that includes a signal generator 102, a control circuit 106,and a haptic actuator 108. The control circuit 106 may be part of anamplitude modification circuit 106, and may control operation of theamplitude modification circuit 106. In an embodiment, the controlcircuit 106 and haptic actuator 108 may be the same as or similar to thecontrol circuit 16 and haptic actuator 18 of FIG. 1.

In an embodiment, the signal generator 102 may be a hardware componentconfigured to generate a nonzero drive signal that is used to create ahaptic effect for the haptic-enabled device 100. In FIG. 1A, the signalgenerator 102 may be implemented in hardware, such as a dedicated signalgenerator chip. In the context of FIG. 1A, the signal generator 102 mayalso be referred to as a signal generating circuit. In an embodiment,the signal generator 102 may generate a nonzero drive signal byretrieving a stored waveform. For instance, the signal generator 102 mayhave memory that has been loaded with waveforms defined by a user of thehaptic-enabled device 100 or by any other author of haptic effects. Inan embodiment, the signal generator 102 may have dedicated circuitrythat is configured to generate a waveform of a drive signal based on awaveform identifier, such as a waveform name or other ID. The waveformidentifier may correspond with, e.g., a particular shape, frequency,and/or amplitude of a waveform of a drive signal. The signal generator102 may be configured to generate the corresponding waveform based onthe waveform identifier. In an embodiment, the signal generator 102 maybe implemented as a field programmable gate array (FPGA) chip, aprogrammable logic array (PLA) chip, an analog circuit, or any otherdedicated signal generator chip. The output of the signal generator 102may be analog, such as a voltage signal v(t), or may be digital, such asa stream of digital samples, wherein each digital sample may include oneor more bytes that encode a signal value.

In an embodiment, the amplitude modification circuit 104 (e.g., boostcircuit) may provide an interface between the signal generator 102 andthe haptic actuator 108. This interface may map a nonzero drive signalfrom the signal generator 102 to a voltage signal or current signalappropriate to a particular actuator or type of actuator (e.g., to beappropriate to a rated maximum voltage of a particular actuator, such asa linear resonant actuator (LRA), piezoelectric, eccentric rotating mass(ERM) actuator, or electrostatic friction (ESF) actuator), or to aparticular situation (e.g., to be appropriate to whether a crisp hapticeffect is being desired). The presence of the amplitude modificationcircuit 104 may thus allow the signal generator 102 to be designedindependently of specific haptic actuators that may be used to generatea haptic effect, and may allow the signal generator 102 to be adaptedfor new haptic effects (e.g., a new type of crisp haptic effect forsimulating a button press) for which the signal generator 102 may nothave been originally designed.

In an embodiment, the amplification modification circuit 104 may includea control circuit 106 that receive the nonzero drive signal in real timefrom the signal generator 102. For instance, the signal generator 102may output signal values for the nonzero drive signal sequentially intime. As the signal generator 102 sequentially generates new signalvalues of a nonzero drive signal, the control circuit 104 maysequentially detect (or, more generally, receive) the new signal valuesas soon as they are generated. Thus, at a particular instance in timewhen the signal generator 102 outputs a new value of a drive signal, thenew value may immediately be output to the control circuit 106 of theamplitude modification circuit 104, and the control circuit 106 may mapthe signal values to a voltage range or current range in a manner thatis substantially in real-time.

In an embodiment, the amplitude modification circuit 104 may be a boostcircuit, or a boost/attenuate circuit. In an embodiment, theamplification modification circuit 104 may include hardware componentsthat are configured to multiply a nonzero drive signal received by thecontrol circuit 106. When the amplitude modification circuit 104 isacting as a boost circuit, it may be configured to multiply the nonzerodrive signal by a multiplication factor (e.g., a gain) of more than 1.For instance, such hardware components may be controlled by the controlcircuit 106 to multiply a nonzero drive signal by a multiplicationfactor of between 2 to 3. When the amplitude modification circuit 104 isacting as an attenuate circuit, it may be configured to multiply thenonzero drive signal by a multiplication factor of less than 1 (i.e.,between 0 and 1). In an embodiment, the control circuit 106 may beconfigured to implement boost protection logic for the haptic-enableddevice 100 by controlling a multiplication factor used by the amplitudemodification circuit 104 in multiplying a nonzero drive signal. In anembodiment, the amplitude modification circuit 104 may includeadditional components, such as an operational amplifier, that arecontrolled by the control circuit 106 for converting the output from thesignal generator 102 to a determined voltage or current value. In anembodiment, the control circuit 106 may be configured to calculate adigital voltage value or current that represents a voltage or current tobe applied to the haptic actuator 108, and the amplitude modificationcircuit 104 may include a digital to analog converter (DAC) thatconverts the digital voltage value or digital current value to an analogformat.

In an embodiment, the amplitude modification circuit 104 may boost thenonzero drive signal from the signal generator 102 in real-time. Morespecifically, the amplitude modification circuit 104 may boost a new(e.g., most recent) signal value of the nonzero drive signal from thesignal generator 102 as soon as the amplitude modification circuit 104receives the new signal value, rather than wait to buffer all signalvalues of a nonzero drive signal before performing boosting of thenonzero drive signal.

In an embodiment, the amplification modification circuit 104 may includeone or more dedicated timer circuits, such as a boost timer circuit(also referred to as a boost timer) and a cool-down timer circuit (alsoreferred to as a cool-down timer). The one or more timer circuits may beused to track whether a boost timeout threshold, cooling time threshold,or extended boost mode timeout, which are discussed in more detailbelow, have elapsed. For instance, the one or more timer circuits may becounters that increment or decrement to track an amount of time that haselapsed.

In an embodiment, the haptic actuator 108 may be a haptic output devicethat is configured to actuate a component of the haptic output device.For instance, the haptic actuator 108 may be a linear resonant actuator(LRA), such as a voice coil configured to actuate a magnet, or such as apiezoelectric actuator configured to actuate a piezoelectric layer. Inanother example, the haptic actuator 108 may include a motor. Forinstance, the actuator 108 may be an eccentric rotating mass (ERM)actuator configured to actuate a mass that is attached to the motor. Inan embodiment, the haptic actuator 108 may heat up when a drive signalis applied to the haptic actuator. While embodiments herein discuss ahaptic actuator, the present disclosure may apply to a more generalhaptic output device (e.g., an electrostatic friction (ESF) device) thatis configured to heat up when driven by a drive signal.

FIG. 1B illustrates a haptic-enabled device 200 that may be anembodiment of the haptic-enabled device 10. The haptic-enabled device200 has a signal generator 202 and an amplitude modification module 204that are implemented in software. More specifically, the haptic-enableddevice 200 may include a control circuit 206 (e.g., a microprocessor), anon-transitory computer-readable medium such as memory 201, a digital toanalog converter (DAC) 207, and a haptic actuator 208. In an embodiment,the control circuit 206 may be a general purpose microprocessor or adedicated processor, such as a microcontroller dedicated to generatinghaptic effects. In an embodiment, the memory 201 (e.g., solid statememory) may be a non-transitory computer-readable medium that storesinstructions that are executable by the control circuit 206 forimplementing the signal generator 202 and the amplification module 204.In the context of FIG. 1B, the signal generator 202 may also be referredto as a signal generating module. In an embodiment, the signal generator202 and the amplitude modification module 204 may be stored as twoseparate functions in the memory 201 or may be stored as two separateblocks of code in the same function in memory 201, and may be executableby the control circuit 206.

In an embodiment, the signal generator 202 may be configured to output anonzero drive signal. The amplitude modification module 204 may receivethe nonzero drive signal as an input, and may map the nonzero drivesignal to a particular voltage range or current range. In an embodiment,the nonzero drive signal may already be stored in memory as a series ofsignal values. For instance, FIG. 1B depicts the memory 201 storing oneor more nonzero drive signals in a drive signals file 205, which mayhave been previously created by a haptic effects author. In one example,the one or more nonzero drive signals in file 205 may be stored as aseries of signal values, wherein each of the signal values may be an8-bit digital value that is in a range of 0-255. The file 205 mayidentify timing information for the stored nonzero drive signals. Forinstance, it may indicate that a particular nonzero drive signal has asampling rate of 8 kHz, which may mean that each signal value of thenonzero drive signal represents a duration of ⅛ kHz, or 0.125 msec. Thesignal generator 202 may be configured to retrieve a stored nonzerodrive signal from file 205, and output the retrieved nonzero drivesignal to the amplitude modification module 204. In some cases, thenonzero drive signal may be retrieved and output from the signalgenerator 202 to the amplitude modification module 204 in response to acommand or triggering event to output a haptic effect. For instance, ifan application determines that a haptic effect is to be generated, thesignal generator 202 may retrieve from the file 205 a nonzero drivesignal associated with the haptic effect, and the signal modificationmodule 204 may then map the nonzero drive signal that was retrieved to aboosted voltage range or current range, or to an amplitude-limitedvoltage range or current range.

In another example, the drive signals file 205 may be omitted, and thesignal generator 202 may more dynamically generate a nonzero drivesignal. For instance, the signal generator 202 may dynamically calculate40 signal values of a nonzero drive signal and output the calculatedsignal values to the module 204. In another example, the signalgenerator 202 may be omitted, and the amplitude modification module 204may directly retrieve nonzero drive signals from the drive signals file205.

In an embodiment, the amplitude modification module 204 may scale orotherwise a nonzero drive signal to a boost voltage range or currentrange, or to an amplitude-limited voltage range or current range. Forinstance, the amplitude modification module 204 may boost a nonzerodrive signal from the signal generator 202 in real-time. In thisinstance, the amplification modification module 204 may periodicallycheck (e.g., at a rate of 8 kHz, 16 kHz, 32 kHz, or any other rate) anoutput of the signal generator 202 for newly generated signal samples,and multiply the newly generated signal samples by a multiplicationfactor. In an embodiment, the control circuit 206 may have to switchbetween executing instructions for the signal generator 202, executinginstructions for the amplitude modification module 204, and executinginstructions of any other module of the haptic-enabled device 200. Theswitching may occur at a much faster rate than a refresh rate of thesamples of the nonzero drive signal, and much faster than a samplingrate of the nonzero drive signal, such that the amplitude modificationmodule 204 is still considered to be operating in real-time or nearreal-time.

In an embodiment, the voltage value or current value that is determinedby the amplitude modification module 204 as a result of the mapping maybe represented in digital form. The DAC 207 may convert the voltagevalue or current value from digital form to analog form, after which thevoltage value or current value is applied to the haptic actuator 208.

As discussed above, the haptic-enabled devices 100, 200 may be any of avariety of user interface devices. For instance, FIG. 1C illustrates ahaptic-enabled device 300 that is a mobile phone, and a haptic-enableddevice 400 that is a game console controller. A haptic actuator (e.g.,108) of the embodiments herein may be used to generate a haptic effectthat is, e.g., a vibrotactile haptic effect. In one example, thevibrotactile haptic effect may be generated to simulate a click of avirtual home button that is displayed on a touchscreen of thehaptic-enabled device 300.

FIG. 2A illustrates an example of nonzero drive signals that, forinstance, are stored in drive signals file 205 and are received by thecontrol circuit 202 while executing the amplitude modification module204. More specifically, FIG. 2A depicts a software interface in which anauthor may select or otherwise generate nonzero drive signals 501-505for generating a haptic effect or multiple haptic effects. The nonzerodrive signals 501-505 may be considered to be generating a single hapticeffect if, for instance, the nonzero drive signals 501-505 are generatedin response to the same triggering condition (e.g., a user input, or anevent in a game). Similarly, the nonzero drive signals 501-505 may beconsidered to be generating different respective haptic effects if, forinstance, the nonzero drive signals 501-505 are generated in response toseparate respective triggering conditions.

In an embodiment, the author may design the haptic effect or hapticeffects to include nonzero drive signals 501, 503, 504, which may eachbe a sinusoidal or other periodic signal having a defined duration,peak-to-peak amplitude (also referred to as peak-to-peak magnitude),period, or frequency. The nonzero drive signals 501, 503, 504 in FIG. 2Amay have the same signal definition. In an embodiment, the nonzero drivesignals 502 and 505 may have been drawn or otherwise customized by anauthor. For instance, FIG. 2B illustrates a waveform that an author mayhave drawn. The waveform may be stored in memory 201 as a plurality ofsignal values, wherein each of the signal values may represent a definedduration (e.g., 0.25 ms). The waveform may form a signal definition, andeach of signals 502 and 505 may have the signal definition representedby the waveform of FIG. 2B.

In an embodiment, a nonzero drive signal may define a waveform that atmost crosses a zero value at a particular instance or at particularinstances in time, but otherwise has nonzero signal values. Forinstance, as illustrated in FIGS. 2A and 2B, nonzero drive signal 502may be preceded by a finite duration 511 of zero value, and may beconsidered to begin when nonzero signal values are detected. The nonzerodrive signal 502 may be followed by a finite duration 513 of zero value,and may be considered to end when the finite duration 513 of zero valueis detected. Although the nonzero drive signal 502 may cross zero atparticular instances in time, also referred to as zero crossing points,the zero crossing points may be considered to have no finite duration,and thus may still be part of the nonzero drive signal 502. In anembodiment, if the output of the signal generator 102/202 is an analogoutput, then a value of the analog output that is close to zero, such asa value that is less than a background noise threshold, may also beconsidered a zero value. In an embodiment, if the nonzero drive signalis configured to cause a haptic actuator (e.g., 108) to generate aforce, the signal values of the nonzero drive signal may be referred toas force values.

FIG. 3 illustrates boost protection logic that may be represented by astate machine. The state machine may be executed or otherwiseimplemented in an amplitude modification circuit (e.g., 104) or module(e.g., 204). For instance, the control circuit 16/106/206 of theamplitude modification circuit 104 or module 204 may track what statethe circuit/module 104/204 is currently in, and control how a nonzerodrive signal is modified or otherwise mapped based on the current state.In an embodiment, the transition of states may be reflected in aregister or in a variable in memory that stores an indicator of acurrent state of the control circuit 16/106/206 with respect to drivingthe haptic actuator 18/108/208, which may also be a current state of theamplitude modification circuit/module 104/204.

In FIG. 3, the state machine may transition between a start/idle mode(also referred to as a start state) 602, a boost mode 604, anamplitude-limited mode 606, and a cool-down mode 608 (which maycorrespond to a cool-down period). In the start/idle mode 602, thecontrol circuit 102/202 may be in a state in which it has not yetdetected a nonzero drive signal from the signal generator 102/202, andis waiting for a beginning of a nonzero drive signal from the signalgenerator 102/202 to be detected. For instance, the control circuit16/106/206 may monitor an output of the signal generator 102/202 todetermine whether a nonzero drive signal has been received from thesignal generator 102/202. If the control circuit detects a beginning ofa nonzero drive signal, or otherwise begins to receive a nonzero drivesignal, the control circuit 16/106/206 may transition to boost mode 604.

In the boost mode 604, the control circuit 16/106/206 may scale orotherwise map the nonzero drive signal to a boosted voltage range or aboosted current range, wherein an absolute value of a minimum value or amaximum value of the range exceeds a defined rated maximum voltage ofthe haptic actuator 18/108/208. Thus, the boost mode 604 allows anamplitude of the nonzero drive signal to be boosted beyond the definedrated maximum voltage of a haptic actuator 18/108/208. For instance, ifthe haptic actuator 18/108/208 has a defined rated maximum voltage of 8V, the control circuit 16/106/206 in the boost mode may receive asinusoidal drive signal stored in memory and apply the sinusoidal drivesignal to the haptic actuator by scaling the sinusoidal drive signal sothat it has a peak-to-peak amplitude of 10 V_(pp) or 15 V_(pp), andapplying the scaled sinusoidal drive signal to the haptic actuator. Asdiscussed above, the scaling may be performed by multiplying the signalvalues of the drive signal by a multiplication factor (e.g., 10/255 V or15/255 V), or in some other manner.

In an embodiment, the state machine of FIG. 3 is used for situation inwhich a first non-zero drive signal (e.g., 701 or 801 in FIG. 5 or 6,respectively) lasts longer than a first defined time threshold, such asa boost timeout threshold (e.g., 9 ms, or 12 ms). In such an embodiment,the boost timeout threshold may be exceeded before an end of the firstnonzero drive signal. The state machine in FIGS. 8 and 11 may refer to amore general situation in which the first nonzero drive signal can belonger or shorter than the boost timeout threshold. Referring back toFIG. 3, if the control circuit 16/106/206 detects that a duration spentin the boost mode (since a start time of the boost mode) exceeds thefirst defined time threshold, the control circuit 106/206 may transitionto the amplitude-limited mode 606. In an embodiment, the start time ofthe boost mode 604 in which the first nonzero drive signal (e.g., 701)is applied may be defined as a beginning of the first nonzero drivesignal, when the control circuit 16/106/206 transitioned from thestart/idle mode 602 to the boost mode 604. Further, the start time mayrefer to a most recent start time of the boost mode 604. If the controlcircuit exits the boost mode 604 and then later re-enters the boost mode604, the most recent start time of the boost mode 604 may be updated tobe equal to when the control circuit re-entered the boost mode 604.

In an embodiment, the control circuit 106/206 may start a boost timerwhen there is a transition from the start/idle mode 602 to the boostmode 604. The boost timer may reflect how long is a duration being spentin the boost mode (i.e., a boost duration), or may reflect moregenerally a duration since the start time of the boost mode 604 for thefirst nonzero drive signal 701 or 801. This duration may be referred toas a boost duration. The boost timer may be used to determine whetherthe duration for the boost mode exceeds a first defined time threshold,such as the boost timeout threshold. In some cases, the boost timer maytrack an amount of time that has elapsed since a start time of the boostmode. When the amount of time exceeds the boost timeout threshold, theboost timer may stop tracking that amount of time. For instance, it maystop incrementing in value. In some cases, the boost timer may be resetafter the control circuit 16/106/206 re-enters the start/idle mode 602.In an embodiment, the control circuit 16/106/206 may periodically check(e.g., every 1 ms or every 50 μs) the timer to determine whether theduration since the start time of the boost mode, which may also bereferred to as the amount of time that has elapsed since the start timeof the boost mode, exceeds the first defined time threshold at a time atwhich the timer is being checked.

In an embodiment, the defined time thresholds herein (e.g., the firstdefined time threshold, second defined time threshold, third definedtime threshold, fourth defined time threshold) may be defined by a user,such as a user of the haptic-enabled device 10, a designer of theamplitude modification circuit 104, a programmer of the amplitudemodification module 204, an author of haptic effects, or by some otheruser. The user may have set the values of the time thresholds in memory201, before the amplitude modification circuit 104 or amplitudemodification module 204 began operating. In an embodiment, the definedtime thresholds may be dynamically determined at run-time, such as byinstructions of the amplitude modification module 204 that are executedby the control circuit 206. In such an embodiment, the defined timethresholds may be referred to as determined time thresholds (e.g.,determined second time threshold).

In an embodiment, after the control circuit 16/106/206 has applied afirst portion of the first nonzero drive signal (e.g., 701) in the boostmode 604, the boost timeout threshold may be exceeded. In an embodiment,the control circuit 16/106/206 may monitor a boost duration in order todetect the boost duration exceeding the boost timeout threshold, whereinthe boost duration is a duration since a start time of the boost mode604. In response to the boost duration exceeding the boost timeoutthreshold, the control circuit 16/106/206 may transition from the boostmode 604 to the amplitude-limited mode 606. In an embodiment, thecontrol circuit 16/106/206 may apply a second portion (e.g., a remainingportion) of the nonzero drive signal in the amplitude-limited mode 606.In such a mode, the second portion of the nonzero drive signal may beapplied in a manner that does not exceed the defined rated maximumvoltage or current of the haptic actuator 18/108/208. In some cases, thecontrol circuit 16/106/206 in the amplitude-limited mode 606 may scalethe second portion of the nonzero drive signal to an amplitude-limitedvoltage range or current range. The amplitude-limited voltage range orcurrent range may have a minimum value and maximum value that both donot exceed the defined rated maximum voltage or current. For instance,if the haptic actuator 18/108/208 has a defined rated maximum voltage of8 V, the control circuit 16/106/206 in the amplitude-limited mode mayscale a sinusoidal drive signal, for instance, to have a peak-to-peakamplitude of 8 V_(pp).

In an embodiment, as illustrated in FIG. 3, the amplitude modificationcircuit/module 104/204 may transition to the cool-down mode 608 afterthe control circuit 16/106/206 detects an end of the first nonzero drivesignal (e.g., and end of nonzero drive signal 701). In other words, thecontrol circuit 16/106/206 may transition to the cool-down mode 608after the first nonzero drive signal has finished being applied in theamplitude-limited mode 606. The cool-down mode 608 may be a mode inwhich the control circuit 16/106/206 is not receiving any nonzero drivesignal, or more generally a mode in which the haptic actuator 18/108/208is not being driven. The cool-down mode 608 may place a constraint onthe ability to apply a subsequent nonzero drive signal in the boost mode604. For instance, the cool-down mode 608 may force any subsequentnonzero drive signal to be applied in the amplitude-limited mode 606until the control circuit 16/106/206 has spent at least a second definedtime threshold, such as a cooling time threshold, in the cool-down mode608.

In an embodiment, when the control circuit 16/106/206 enters thecool-down mode, it may start a cool-down timer. More generally speaking,the control circuit 16/106/206 may start the cool-down timer when theend of the first nonzero drive signal (e.g., 701) is detected. In anembodiment, the end of the nonzero drive signal may define or otherwiserepresent a start time of the cool-down period. Thus, the cool-downtimer may be used to measure a duration spent in the cool-down mode, ormore generally a duration since a start time of the cool-down period. Inthe cool-down mode 608, the control circuit 16/106/206 may wait toreceive or otherwise receive a next nonzero drive signal, or moregenerally a subsequent nonzero drive signal 16/106/206. In anembodiment, the control circuit 16/106/206 may remain in the cool-downmode 608 so long as it detects only digital signal values of zero oranalog signal values that are below a defined noise threshold, and thusmay leave the haptic actuator 18/108/208 undriven in the cool-down mode608. The haptic actuator 18/108/208 may thus be allowed to cool down intemperature in the cool-down mode. As stated above, the cool-down periodmay refer to a period spent in the cool-down mode 608. Thus, in someinstances, the cool-down period may start at a beginning of thecool-down mode 608. In other cases, as discussed below with respect toFIGS. 8 and 11, the cool-down period may start at a beginning of a boostcool-down mode.

In an embodiment, the control circuit 106/206 may track or otherwisemonitor how long a cool-down period has lasted (i.e., how long it hasbeen in a cool-down period). The cool-down period may have to besufficiently long before the control circuit 16/106/206 can re-enter theboost mode 604, so as to give the haptic actuator 18/108/208 sufficienttime to cool before the actuator 18/108/208 is heated again in the boostmode 604. As an example, a duration since a start time of a cool-downperiod may have to exceed a second defined time threshold (e.g., 90 ms)before the control circuit 16/106/206 is allowed to transition to theboost mode 604. If an amount of time spent in the cool-down mode 608does not yet equal or does not yet exceed the second defined timethreshold, a next nonzero drive signal may have to be applied in theamplitude-limited mode 606. In an embodiment, the cool-down timer usedto track a duration spent in the cool-down period may be reset when avalue of the cool-down timer reaches or exceeds the second defined timethreshold. In an embodiment, the cool-down timer may be reset when thecontrol circuit 16/106/206 exits from the cool-down mode 608 to theamplitude-limited mode 606 or to the start/idle mode 602. When thecontrol circuit 16/106/206 returns to the cool-down mode 608, thecool-down timer may begin counting from a reset value. Because thecool-down timer is reset when a nonzero drive signal is received, thecool-down timer in such an embodiment may indicate a duration of acontinuous cool-down period between two consecutive nonzero drivesignals, and may require the continuous cool-down period to reach orexceed the second defined threshold before the control circuit16/106/206 can exit from the cool-down mode 608 to the start/idle mode602 and the boost mode 604. In another embodiment, rather than requiringthe second defined time threshold to be exceeded by a duration of acontinuous cool-down period, the control circuit 16/106/206 may be ableto return to the start/idle mode 602 and boost mode 604 when acumulative duration of several cool-down periods that are not continuouswith each other reaches or exceeds the second defined time threshold.Such an embodiment may be implemented with, e.g., a cool-down timer thatis not reset when the control circuit 16/106/206 exits from thecool-down mode 608 to the amplitude-limited mode 606. Instead, when thecontrol circuit 16/106/206 enters the cool-down mode 608 again, thecool-down timer may begin counting from its previous, retained value. Inthis embodiment, the cool-down timer may ultimately be reset when itsvalue reaches or exceeds the second defined time threshold.

In an embodiment, the state machine of FIG. 3 may be used with a varietyof haptic actuators and drive signals. For instance, the state machinemay be used with a nonzero drive signal having direct current (DC)signal values that all have the same polarity, or with a nonzero drivesignal having signal values that vary between two different polarities.Such a nonzero drive signal includes a periodic signal, such as asinusoidal signal, that alternates between a positive value and anegative value. Such a nonzero drive signal may have zero crossingpoints (points at which a signal crosses zero in value). For a hapticactuator (e.g., LRA) that operates with a nonzero drive signal havingzero crossing points, after the boost timeout threshold has beenreached, the control circuit 16/106/206 may prolong the application of adrive signal with a boosted voltage range or boosted current range,until a zero crossing point is reached, or until an additional timethreshold is reached. This option may be reflected by an additional mode(or state), referred to as an extended boost mode, between the boostmode 604 and the amplitude-limited mode 606.

For instance, FIG. 4 illustrates a state machine that includes anextended boost mode (also referred to as a post boost mode) 605 that mayprolong boosting of a nonzero drive signal until a zero crossing mode,and only then transition to an amplitude-limited mode. The extendedboost mode 605 may be an extension of the boost mode 604. Morespecifically, when a nonzero drive signal transitions from being appliedin the boost mode 604 to being applied in the amplitude-limited mode606, as illustrated in FIG. 4, the nonzero drive signal may transitionfrom being scaled to a boosted voltage range to being scaled to anamplitude-limited voltage range. In one example, the transition mayinvolve a change from a nonzero drive signal being scaled to a boostedvoltage range of −7 V to 7 V (wherein the defined rated maximum voltagemay be 5 V) to an amplitude-limited range of −4 V to 4 V. Such atransition, if performed at certain points in time, may involve anabrupt change from one signal value to another signal value. Forinstance, the transition may involve a voltage value of 7 V beingapplied to a haptic actuator 18/108/208 while in the boost mode,followed immediately by a voltage value of 4 V being applied in theamplitude-limited mode when the boost timeout threshold is reached. Suchan abrupt transition may create a sound or other audible noise (e.g., aclick sound), especially in a high-definition (HD) haptic actuator orother haptic actuator having a high bandwidth, which may be undesirable.To avoid such an abrupt transition, the transition from using theboosted voltage range or current range to using the amplitude-limitedvoltage range or current range may be timed to occur at a zero crossingpoint. Such a transition avoids an abrupt transition because a signalvalue of zero may be scaled to the same voltage value or current value,namely zero volts or amps, in both the boosted voltage/current range andthe amplitude-limited voltage/current range. More particularly, if thescaling involves multiplying a signal value by a multiplication factor,doing so with a signal value of zero will yield the same scaled value inboth the boosted voltage/current range and the amplitude-limitedvoltage/current range. Thus, waiting until a zero crossing point beforetransitioning to the amplitude-limited mode 606 may avoid an abrupttransition of signal values, which may avoid a click or other soundbeing generated during the transition.

Referring again to FIG. 4, a control circuit 16/106/206 may apply afirst portion of a nonzero drive signal in the boost mode 604. When aboost duration, which may be a duration since a start time of the boostmode 604, exceeds a first defined time threshold such as a boost timeoutthreshold, the control circuit 16/106/206 may transition from the boostmode 604 to an extended boost mode 605 in which the nonzero drive signalcontinues to be scaled to the boosted voltage range or current range,until a zero crossing point is reached, or until another time thresholdhas been reached, whichever occurs first in time. If the boost mode 604involved multiplying the nonzero drive signal 604 by a factor of 3, theextended boost mode may involve continuing to multiply the nonzero drivesignal 604 by the factor of 3. Because the nonzero drive signal has oneor more zero crossing points, the control circuit 16/106/206 in theextended boost mode 605 may wait for the zero crossing point totransition to the amplitude-limited state 606. In an embodiment, thecontrol circuit 16/106/206 may be limited to a third defined timethreshold, which may be referred to as an extended boost timeoutthreshold, in the extended boost mode. Thus, even if the control circuit16/106/206 has not yet encountered a zero crossing threshold, it maytransition to the amplitude-limited mode 606 anyway if a duration sincea start time of the extended boost mode (i.e., since the boost timeoutthreshold reached or exceeded the boost timeout threshold) reaches orexceeds the third defined time threshold.

FIG. 5 illustrates a plurality of nonzero drive signals that are appliedas voltage drive signals 701-705 to a haptic actuator 18/108/208according to the state machine of, e.g., FIG. 3. The voltage signals701-705 are each DC signals that may be applied to, e.g., an ERMactuator. Between time t₀ and t₁, the control circuit 16/106/206 may bein the start/idle mode 602, in which the control circuit 16/106/206 hasnot yet detected or otherwise received a nonzero drive signal for ahaptic effect. The nonzero drive signal may be received from memory, forexample.

In an embodiment, at time t₁, the control circuit 16/106/206 may detecta beginning of a first nonzero drive signal for a haptic effect, such asa square pulse having an 8-bit value of 255, or a square pulse having avalue of 3.5 V. The square pulse may have a duration equal to t₃−t₁. Thecontrol circuit 16/106/206 may enter the boost mode 604 as a result. Inthe boost mode 604, a first portion of the first nonzero drive signalmay be applied, as a first portion 701 a of the voltage signal 701. Forinstance, the control circuit 16/106/206 may scale the signal value of255 or of 3.5 V of the first nonzero drive signal to 7 V, by multiplyingthe signal value by a multiplication factor of 7/255 V (i.e., 255×7/255V=7 V) or by a multiplication factor of 2 (i.e., 3.5 V×2=7 V).

At time t₂, the control circuit 16/106/206 may detect a duration since astart time of the boost mode 604 to have reached or exceeded a boosttimeout threshold (e.g., 9 ms). In an embodiment, the start time of theboost mode 604 may be time t₁. The control circuit 16/106/206 may, e.g.,periodically check whether a current time t minus t₁ is equal to or isgreater than the boost timeout threshold, wherein a frequency at whichthe check is performed may be, e.g., 10 KHz (once every 0.1 ms) or someother frequency. In this example, the boost timeout threshold may beshorter than a duration of the first nonzero drive signal In response todetecting the duration since the start time of the boost mode 604reaching or exceeding the boost timeout threshold, the control circuit16/106/206 may transition to an amplitude-limited mode, in which asecond portion of the first nonzero drive signal is scaled to anamplitude-limited voltage range or current range. In one example, if thefirst nonzero drive signal is a square pulse lasting, e.g., 30 ms, thefirst portion of the first nonzero drive signal may be an earliest 9 msportion of the square pulse, while the second portion may be theremaining 21 ms portion that immediately follows the first portion. Inthe amplitude-limited mode, the control circuit 16/106/206 may scale thesecond portion of the nonzero drive signal to an amplitude-limitedvoltage range, such as a range of 0 V to 4 V (the haptic actuator18/108/208 in this example may have a defined rated maximum voltage of 4V). The scaling may involve, e.g., multiplying the 8-bit value of 255 orthe value of 3.5 V of the square pulse by a multiplication factor of4/255 V (i.e., 255×4/255=4 V) or by a multiplication factor of 4/3.5(i.e., 3.5 V×4/3.5=4 V). The second portion of the first nonzero drivesignal may be scaled to be the second portion 701 b of the voltagesignal 701.

At time t₃, the control circuit 16/106/206 may detect an end of thefirst nonzero drive signal, and transition from the amplitude-limitedmode 606 to the cool-down mode 608. In the cool-down mode 608, the ERMactuator may be allowed to cool in temperature, while the controlcircuit 16/106/206 waits for a subsequent nonzero drive signal. In anembodiment, time t₃ may define a start of a first cool-down period.

At time t₄, a beginning of a second nonzero drive signal may be detectedor otherwise received, and may be applied as voltage signal 702. Morespecifically, the control circuit 106/206 at t₄ may determine that theduration spent in the cool-down mode 608, or more generally a length ofthe first cool-down period (also referred to as a cool-down duration),has not reached or does not yet exceed a cooling time threshold, such as90 ms. In FIG. 5, this duration, and more generally the length of thefirst cool-down period (also referred to as a cool-down duration), maybe equal to an interval between t₃ and t₄, which may be a length of timebetween an end of the first nonzero drive signal and a beginning of thesecond nonzero drive signal. The first nonzero drive signal and thesecond nonzero drive signal may be referred to as consecutive nonzerodrive signals, because no other nonzero drive signal is between them(i.e., there is no intervening nonzero drive signal between them). Inresponse to determining that the length of the first cool-down periodhas not reached or has not exceeded the cooling time threshold, thecontrol circuit 106/206 may apply the second nonzero drive signal in theamplitude-limited mode 606. For instance, the second nonzero drivesignal may also be a square pulse having an 8-bit digital value of 255and a duration equal to t₅−t₄, and the control circuit 16/106/206 mayscale the second nonzero drive signal to a voltage value of 4 V bymultiplying the nonzero drive signal by a factor of 4/255 V, andapplying the scaled nonzero drive signal as voltage signal 702.

Similarly, at time t₅, the control circuit 16/106/206 may detect an endof the second nonzero drive signal and transition to the cool-down mode608. In an embodiment, t₅ may define a start time of a second cool-downperiod. At time t₆, the control circuit 16/106/206 may detect orotherwise receive a third nonzero drive signal, and may determinewhether a length of the second cool-down period (also referred to as acool-down duration) exceeds the cooling time threshold. The length ofthe second cool-down period may be a duration of a continuous timeperiod immediately preceding the third nonzero drive signal in which thehaptic actuator 18/108/208 was not driven. More generally, the controlcircuit 16/106/206 may determine whether a duration between thebeginning of the third nonzero drive signal (i.e., t₆) and an end of aprevious consecutive nonzero drive signal (i.e., t₅) has reached orexceeds the cooling time threshold. In FIG. 3, this duration has notreached the cooling time threshold. As a result the control circuit106/206 may also apply the third nonzero drive signal in theamplitude-limited mode 606, in which the third nonzero drive signal isscaled to the voltage drive signal 703.

At time t₇, the control circuit 106/206 may detect an end of the thirdnonzero drive signal, and enter the cool-down mode 608 again. The timet₇ may define a start time of a third cool-down period. The controlcircuit 16/106/206 may remain in that state until time t_(7.5). In theexample of FIG. 5, t_(7.5)−t₇ may be equal to the cooling timethreshold, such that the cooling time threshold is exceeded after timet_(7.5.) Thus, the control circuit 16/106/206 may detect, at or aftertime t₅, that the cooling time threshold has been reached or has beenexceeded, and may transition from the cool-down mode 608 back to thestart/idle mode 602. This transition may be made by, e.g., updating avariable in memory that identifies which mode of the state machine thecontrol circuit 16/106/206 is in. In an embodiment, this transition maynot be explicitly performed. Rather, when a fourth nonzero drive signalis detected at time t₈, the control circuit 16/106/206 may determinewhether a duration between a beginning of the fourth nonzero drivesignal (i.e., t8) and an end of a previous consecutive nonzero drivesignal (t7) is equal to or is greater than the cooling time threshold.This duration may be determined as a length of the third cool-downperiod (also referred to as a cool-down duration). In the example ofFIG. 5, the control circuit 16/106/206 determines that this durationdoes equal or does exceed the cooling time threshold, and a firstportion of the fourth nonzero drive signal in the boost mode 604, inwhich the first portion is scaled to portion 704 a of the voltage signal704.

At time t₉, the control circuit 16/106/206 may detect that a durationsince a start time of the boost mode 604 has reached or exceeds theboost timeout threshold. More specifically, the control circuit16/106/206 may detect that a duration since a most recent start time ofthe boost mode 604 has reached or exceeds the boost timeout threshold.For instance, the start time of the boost mode 604 may have been t₁, butmay have been updated to time t₈, such that time t₈ is the most recentstart time of the boost mode 604. In this context, the most recent starttime may also be referred to as an updated start time. The update mayhave been performed at or shortly after time t₈.

At times t₉ and t₁₀, the control circuit 106/206 transitions to theamplitude-limited mode 606 and cool-down mode 608, respectively, basedon the process described above. In the amplitude-limited mode 606, asecond portion of the fourth nonzero drive signal may be applied asportion 704 b of voltage signal 704. The fourth nonzero drive signal mayend at time t₁₀, which may be a start time of a fourth cool-down period.

At time t₁₁, the control circuit 16/106/206 may detect a fifth nonzerodrive signal. The control circuit may have transitioned from thecool-down mode 608 to the start/idle mode 602 at this point, becausetime a length of the fourth cool-down period by this point (alsoreferred to as a cool-down duration), which may be equal to a length ofthe interval between time t₁₀ and t₁₁, may be greater than the coolingtime threshold. As a result, the control circuit 16/106/206 may applythe at least a portion of the fifth nonzero drive signal in the boostmode 604.

FIG. 6 similarly illustrates a plurality of nonzero drive signals thatare applied as voltage signals 801-805 according to the state machine ofFIG. 3. In FIG. 6, the nonzero drive signals are sinusoidal signals, andthe haptic actuator may be, e.g., a LRA.

At time t₀, the control circuit may be in the start/idle mode 602, andmay be waiting to detect or otherwise receive a nonzero drive signal. Attime t₁, the control circuit 106/206 may detect or otherwise receive abeginning of a first nonzero drive signal, and enter the boost mode 604as a result. In one example, the first nonzero drive signal may be asinusoidal signal having a plurality of signal values representing anintensity of a haptic effect at different instances in time, whereineach of the signal values is an 8-bit digital value in a range of −128(in two's complement format) and 127. The first nonzero digital valuemay have a duration equal to t₃−t₁. In another example, the firstnonzero drive signal may be a sinusoidal signal having a peak-to-peakamplitude of 4.66 Vpp, with signal values that are in a range of −2.33 Vto 2.33 V. At time t₁, a first portion of the first nonzero drive signalmay be applied in the boost mode 604. This step may involve scaling thefirst portion of the first nonzero drive signal to be portion 801 a ofvoltage signal 801. For instance, the boost mode 604 may scale the firstnonzero drive signal to a boosted voltage range that is from −7 V to 7V. The scaling may involve multiplying the signal values of the firstnonzero drive signal by 7/128 V (i.e., 127×7/128 V is about 7 V) or by7/2.33, or about 3 (i.e., 2.33 V×7/2.33=7 V). In another example, thesignal values of the first nonzero signal may be scaled, or moregenerally mapped, to voltage values that are applied to the hapticactuator 18/108/208 in some other way.

At time t₂, a boost timeout threshold (e.g., 9 ms) may have elapsed, andthe control circuit 16/106/206 may transition to the amplitude-limitedmode 606, in which scales applies a second portion (e.g., remainingportion) of the first nonzero drive signal to an amplitude-limitedvoltage range, which may be a range from −3.5 V to 3.5 V. The hapticactuator 18/108/208 may have a defined rated maximum voltage of, e.g.,3.5 V. This scaling may involve multiplying the signal values of thesecond portion of the nonzero drive signal by a multiplication factor of3.5/128 V (e.g., 127×3.5/128 V is about 3.5 V) or a multiplicationfactor of 3.5/2.33 (i.e., 2.33 V×3.5/2.33=3.5 V). The scaled nonzerodrive signal may be applied as portion 801 b of voltage signal 801.

At time t₃, the control circuit 16/106/206 may detect an end of thefirst nonzero drive signal, and transition to the cool-down mode 608. Attime t₄ and t₅, the control circuit 16/106/206 may detect or otherwisereceive a second nonzero drive signal and third nonzero drive signal,respectively, and apply the second nonzero drive signal and the thirdnonzero drive signal in the amplitude-limited mode 606 as voltage signal802 and 803, respectively, in a manner similar to that described in FIG.5. Also in a manner similar to FIG. 5, the control circuit 16/106/206may transition from the cool-down mode 608 to the start/idle mode 602 ator after time t_(7.5). At time t₈, the control circuit 16/106/206 mayapply a first portion of a fourth nonzero drive in the boost mode 604,as portion 804 a of voltage signal 804. At time t₉, a remaining portionof the fourth nonzero drive signal may be applied in theamplitude-limited mode 606, as portion 804 b of voltage signal 804. Attime t₁₁, the control circuit 16/106/206 may apply a fifth nonzero drivesignal in the boost mode 604, in a manner similar to FIG. 5.

FIG. 7 illustrates a nonzero drive signal that is applied according to ahaptic actuator according the state machine of FIG. 4, which includesthe extended boost mode 605. More specifically, at time t₁, the controlcircuit 16/106/206 may receive a beginning of the nonzero drive signaland apply a first portion of the nonzero drive signal in the boost mode604. This step may involve scaling or otherwise mapping the firstportion of the nonzero drive signal to a boosted voltage range, whereinthe scaled nonzero drive signal is applied as portion 801X of voltagesignal 801. At time t₂, the boost timeout threshold may be reached orexceeded, but the nonzero drive signal is not at a zero crossing point.Thus, the control circuit 16/106/206 may transition from the boost mode604 to the extended boost mode 605, in which the nonzero drive signalcontinues to be scaled to the boosted voltage range. In the extendedboost mode 605, another portion of the nonzero drive signal may beapplied as the portion 801Y of the voltage signal 801. The extendedboost mode 605 may last until time t₃, which may be an earlieroccurrence of the zero crossing point 801 _(zero) being reached or of aduration since a start time of the extended boost mode (i.e., t₂)reaching or exceeding an extended boost timeout threshold (or, moregenerally, a third defined time threshold). At time t3, the controlcircuit 16/106/206 may apply a remaining portion of the nonzero drivesignal in the amplitude-limited mode 606, as portion 801Z of the voltagesignal 801. In some instances, the portion of the nonzero drive signalthat is applied in the boost mode 604 may be referred to as a firstportion of the nonzero drive signal, while the portion that is appliedin the amplitude-limited mode 606 may be referred to as a second portionof the nonzero drive signal, and the portion that is applied in theextended boost mode may be referred to as a third portion of the nonzerodrive signal.

As stated above, the state machines of FIGS. 3 and 4 may relate to asituation in which a first nonzero drive signal that lasts longer than aboost timeout threshold, such that a transition to the amplitude-limitedmode 606 takes place while the first nonzero drive signal is beingapplied to the haptic actuator 18/108/208. FIG. 8 relates to a statemachine for a more general situation in which a first nonzero drivesignal can also be shorter in duration than a first defined timethreshold (e.g., boost timeout threshold). More specifically, FIG. 8illustrates a boost cool-down mode 607 in addition to the start/idlemode 602, boost mode 604, amplitude-limited mode 606, and cool-down mode608. In an embodiment, the control circuit 16/106/206 may transitionfrom the start/idle mode 602 to the boost mode 604, and then to theamplitude-limited mode 606, and then to the cool-down mode 608 in amanner that is similar to FIGS. 3 and 4.

As illustrated in FIG. 8, the control circuit 16/106/206 may alsotransition from the boost mode 604 to a boost cool-down mode 607. Thismay occur if one or more nonzero drive signals end before the boosttimeout threshold is reached or exceeded by a duration spent in theboost mode 604.

In an embodiment, the boost cool-down mode 607 may be a mode in whichthe control circuit 16/106/206 is waiting for a subsequent nonzero drivesignal, and in which the subsequent nonzero drive signal can be appliedin the boost mode 604. More specifically, when the amplitude controlcircuit 16/106/206 detects a beginning of a subsequent nonzero drivesignal, it may transition back to the boost mode 604 and apply thesubsequent nonzero drive signal therein.

In an embodiment, the duration since the start time of the boost mode604 may continue to be incremented even while the control circuit16/106/206 is in the boost cool-down mode 607. Thus, the boost timeoutthreshold can be exceeded while the control circuit 16/106/206 is in theboost cool-down mode 607, at which point the control circuit 16/106/206may transition from the boost cool-down mode 607 to the cool-down mode608. If this occurs, the time spent in the boost cool-down mode 607 maybe included in a cool-down period. In other words, a cool-down periodmay start at a time at which the control circuit 16/106/206 enters theboost cool-down mode 607.

In an embodiment, when the control circuit 16/106/206 transitions fromthe boost mode 604 to the boost cool-down mode 607, it may start acool-down timer to track a length of time spent in a cool-down period(also referred to as a cool-down duration). In an embodiment, thecool-down timer may be reset if/when the control circuit 16/106/206transitions back from the boost cool-down mode 607 to the boost mode604. In an embodiment, the control circuit 16/106/206 may transitionback and forth between the boost mode 604 and the boost cool-down mode607 until the duration since a start time of the boost mode 604 in whichone or more nonzero drive signals are applied equals or exceeds thefirst defined time threshold (e.g., boost timeout threshold). In anembodiment, the control circuit 16/106/206 may reset the cool-down timerwhen it transitions from the cool-down mode 608 to the amplitude-limitedmode 606.

FIG. 9 illustrates a plurality of nonzero drive signals that are appliedto a haptic actuator 18/108/208 in accordance with the state machine ofFIG. 8. At to, the control circuit 16/106/206 may be in the start/idlemode 602. At t₁, the control circuit 16/106/206 may detect a beginningof a first nonzero drive signal, and may transition to the boost mode604. The time t₁ at which the first nonzero drive signal is detected maybe designated as a start time of the boost mode 604 for the firstnonzero drive signal, and may also currently be the most recent starttime of the boost mode 604. In an embodiment, the control circuit16/106/206 may start a boost timer at t₁. In the boost mode 604, thefirst nonzero drive signal may be allowed to be applied at an amplitudethat exceeds a rated maximum voltage of a haptic actuator, by beingscaled to a boosted voltage range. The scaled nonzero drive signal maybecome voltage signal 811, which is applied to the haptic actuator18/108/208.

At time t₂, an end of the first nonzero drive signal may be detected.While the control circuit 16/106/206 may, in the interval from t₁ to t₂,monitor whether a duration since the start time of the boost mode 604exceeds the boost timeout threshold, the first nonzero drive signal mayend before the boost timeout threshold is reached. At time t₂, thecontrol circuit 16/106/206 may transition from the boost mode 604 to theboost cool-down mode 607. The time t₂ may be considered a start time ofa first cool-down period. In an embodiment, a cool-down timer may bestarted at time t₂, while the boost timer may continue to run (e.g.,continue to count upwards).

At time t₃, a beginning of a second nonzero drive signal may bedetected. As a result, the control circuit 16/106/206 may transitionfrom the boost cool-down mode 607 back to the boost mode 604, in whichthe second nonzero drive signal is scaled to become voltage signal 813.The control circuit 16/106/206 may be able to transition back to theboost mode 604 because the boost timeout threshold has not yet beenreached. Thus, the control circuit 16/106/206 may continue to operate inthe boost mode that started at time t₁ (i.e., the most recent start timeof the boost mode 604 is still time t₁). In an embodiment, thetransition back to the boost mode 604 may cause the cool-down timer tobe reset, while the boost timer may continue to run.

At time t₄, an end of the second nonzero drive signal may be detected.The end of the second nonzero drive signal may also come before theboost timeout threshold is reached. Thus, the control circuit 16/106/206may transition back to the boost cool-down mode 607. In an embodiment,time t₄ may be a start time of a second cool-down time period. In anembodiment, the cool-down timer may begin to increment or otherwisecounter starting from time t₄. Further, the boost timer may continue torun.

At time t₅, the control circuit 16/106/206 may detect that a durationsince the most recent start time of the boost mode 604 (i.e., t₁) equalsor exceeds the first defined time threshold, such as the boost timeoutthreshold. As a result of the duration exceeding the first defined timethreshold, the control circuit 16/106/206 may transition to thecool-down mode 608. While in the cool-down mode 608, the control circuit16/106/206 may monitor whether a duration of the second cool-down periodhas reached or exceeds a cooling time threshold.

At time t₆, a beginning of a third nonzero drive signal may be detected.At this time, the control circuit 16/106/206 may transition from thecool-down mode 608 to the amplitude-limited mode 606, rather than to thestart/idle mode, because a a value of the cool-down timer, which isequal to a length of the second cool-down period (t₆−t₄), is less thanthe cooling time threshold. More generally, the transition is to theamplitude-limited mode 606 because a length of time from an end of theprevious consecutive nonzero drive signal to the beginning of the thirdnonzero drive signal is less than the cooling time threshold. In theamplitude-limited mode 606, the third non-zero drive signal may bescaled to the amplitude-limited voltage range, to be voltage signal 815.In an embodiment, the cool-down timer may be reset at or after t₆.

At time t₇, an end of the third non-zero drive signal may be detected,and the control circuit 16/106/206 may transition to the cool-down mode608 again. The end of the third non-zero drive signal may correspondwith a start time of a third cool-down period. In an embodiment, thecool-down timer may be started again at t₇.

At time t₈, the control circuit 16/106/206 may detect that a durationsince the start time of the third cool-down period (i.e., t₈−t₇) exceedsthe cooling time threshold, and may transition to the start/idle mode602. As stated above, this transition may in an embodiment not beexplicitly performed. At time t₉, when the amplitude control circuit16/106/206 detects a beginning of a fourth nonzero drive signal, it maydetermine that the fourth nonzero drive signal can be applied in theboost mode. This determination may be based on the control circuit16/106/206 currently being in the start/idle mode, or more generally maybe based on a duration between the beginning of the fourth nonzero drivesignal and an end of a previous consecutive nonzero drive signalexceeding the cooling time threshold. This duration may be the length ofthe third cool-down period, which may be reflected in a value of thecool-down timer, or as t₉−t₇. Further, the most recent start time of theboost mode 604 may be updated, from being t₁ to being t₉. In the boostmode 604, the fourth nonzero drive signal may be scaled to be voltagesignal 817.

FIG. 10 illustrates a plurality of nonzero drive signals that are alsoapplied to a haptic actuator 18/108/208 in accordance with the statemachine of FIG. 10. At time t₀, the control circuit 16/106/206 may be inthe start/idle mode 602. At time t₁, the control circuit 16/106/206 maydetect a beginning of a first nonzero drive signal, and apply the firstnonzero drive signal as voltage signal 821 in the boost mode 604. Thebeginning of the first nonzero drive signal 821 may be designated as astart time of the boost mode 604.

At time t₂, an end of the first nonzero drive signal is detected. Thismay occur before a duration since the start time of the boost mode 604exceeds the first defined time threshold (e.g., boost timeoutthreshold). As a result, there may be a transition from the boost mode604 to the boost cool-down mode 607. The time t₂ may define a start timeof a first cool-down period.

At time t₃, a beginning of the second nonzero drive signal may bedetected. As a result, the control circuit 16/106/206 may transitionback to the boost mode 604. As a result, a first portion of the secondnonzero drive signal is applied in the boost mode 604 as portion 823 ofvoltage signal 823. Note that, at time t₃, the control circuit16/106/206 does not transition to the amplitude-limited mode 606 becausethe boost timeout threshold has not yet been reached at time t₃. At thispoint, the most recent start time of the boost mode 604 may still betime t₁.

At time t₄, while in the boost mode 604, the control circuit 16/106/206may detect a duration since a start time of the boost mode 604 (i.e., aduration since t₁) exceeding the first defined time threshold (e.g.,boost timeout threshold). As a result, the control circuit 16/106/206may apply a second portion of the second nonzero drive signal in theamplitude-limited mode 606, as portion 823 b of voltage signal 823.

At time t₅, an end of the second nonzero drive signal 823 may bedetected. As a result, there may be a transition from theamplitude-limited mode 606 to the cool-down mode 608. In an embodiment,the end of the second nonzero drive signal 823 may correspond to (e.g.,designated as) a start time of a second cool-down period.

At time t₆, the control circuit 16/106/206 may detect that a durationsince a start time of the second cool-down period (i.e., t₆−t₅) equalsor exceeds a second defined time threshold (e.g., a cooling timethreshold). Upon detecting this event, the control circuit 16/106/206may transition from the cool-down mode 608 to the start/idle mode 602.When a third nonzero drive signal is detected at time t₇, the controlcircuit 16/106/206 may apply the third nonzero drive signal in the boostmode 604 as voltage signal 825, and the most recent start time of theboost mode may be updated from being t₁ to being t₇. The control circuit16/106/206 may determine to apply the third nonzero drive in the boostmode 604 because the third nonzero drive signal was detected while thecontrol circuit 16/106/206 was in the start/idle mode 602, or moregenerally because a duration between a beginning of the third nonzerodrive signal and an end of a previous consecutive nonzero drive signalexceeds the second defined time threshold. This duration may be equal toa duration of the second cool-down period, which may be equal to a valueof the cool-down timer, or more generally equal to t₇−t₅.

FIG. 11 illustrates a state machine that is similar to the state machineof FIG. 8, but further includes an extended boost mode 605. As discussedabove, the extended boost mode may be used for a nonzero drive signalthat alternates between a positive polarity and a negative polarity.More specifically, when a duration since a start time of a boost modeexceeds the first defined time threshold (e.g., boost timeoutthreshold), the control circuit 16/106/206 may transition from the boostmode 604 to the extended boost mode 605, rather than directly to theamplitude-limited mode 606. The extended boost mode 605 may allow thenonzero drive signal to continue to be scaled to the boosted voltagerange or boosted current range until a zero crossing point until aduration spent in the extended boost mode 605 exceeds another definedtime threshold (e.g., an extended boost timeout threshold), whicheveroccurs sooner.

FIG. 12A illustrates an example method 900 of applying one or morenonzero drive signals to a haptic actuator, according to the embodimentsherein. The method 900 may be performed by a control circuit, such ascontrol circuit 16, 106, or 206. In an embodiment, the method begins ata step 901, in which the control circuit 16/16/106/206 receives anonzero drive signal to be used by a haptic actuator 18/108/208 togenerate a haptic effect, wherein the haptic actuator 18/108/208 mayhave a defined rated maximum voltage or current. The nonzero drivesignal may be, e.g., the first nonzero drive signal in FIG. 5 or thesecond nonzero drive signal in FIG. 10. The nonzero drive signal may bereceived from, e.g., a signal generator 102/202, which may haveretrieved the nonzero drive signal from memory.

In step 903, the control circuit 16/106/206 causes a first portion ofthe nonzero drive signal to be applied (e.g., by the signal modificationcircuit/module 104/204) in the boost mode 604, in which the firstportion of the nonzero drive signal is scaled to a boosted voltage rangeor boosted current range, wherein an absolute value of a minimum valueor maximum value of the boosted voltage range or boosted current rangeexceeds the defined rated maximum voltage or defined rated maximumcurrent of the haptic actuator. For instance, step 903 may involveapplying a first portion of the first nonzero drive signal in FIG. 5 inthe boost mode 604, or applying a first portion of the second nonzerodrive signal in FIG. 10 in the boost mode 604 (the first nonzero drivesignal in FIG. 10 may also have been applied in the boost mode 604).

In an embodiment, the nonzero drive signal is one of one or moreconsecutive nonzero drive signals that are applied in the boost mode604. In an embodiment, the nonzero drive signal may be a latest one(i.e., latest in time) of a plurality of consecutive nonzero drivesignals, wherein the control circuit may have been in the start/idlemode 602 or the cool-down mode 608 right before the plurality ofconsecutive nonzero drive signals were applied. In an embodiment, anearliest nonzero drive signal of the one or more consecutive nonzerodrive signals may define a start time of the boost mode 604, wherein anynonzero drive signal that precedes and is consecutive to the earliestnonzero drive signal was not applied in the boost mode, or was separatedfrom the earliest nonzero drive signal by at least a cooling timethreshold.

In step 904, the control circuit detects a boost duration exceeding afirst defined time threshold, wherein the boost duration is a durationsince a start time of the boost mode. The control circuit 16/106/206 maymonitor the boost duration in order to detect the boost durationexceeding the first defined time threshold. In an embodiment, thenonzero drive signal may be the first nonzero drive signal of FIG. 5,and the start time of the boost mode 604 may be the beginning of thefirst nonzero drive signal (i.e., time t₁ in FIGS. 5). In an embodiment,the nonzero drive signal is a latest one of a plurality of consecutivenonzero drive signals that are applied in the boost mode 604. Forinstance, the nonzero drive signal may be the second nonzero drivesignal in FIG. 10, wherein the first nonzero drive signal and the secondnonzero drive signal are consecutive nonzero drive signals that areapplied in the boost mode. In this embodiment, the start time of theboost mode 604 may be a beginning of an earliest one of the plurality ofconsecutive nonzero drive signals (i.e., time t₁ in FIG. 10). Each ofthe consecutive nonzero drive signals may be applied in the boost modeonly in response to a determination that a duration since the start timeof the boost mode to the beginning of the respective nonzero drivesignal has not exceeded the first defined time threshold. In anembodiment, the first defined time threshold may be exceeded at, e.g.,time t₂ in FIG. 5 or time t₄ in FIG. 10.

In step 905, in response to detecting that the boost duration exceedsthe first defined time threshold, the control circuit causes a secondportion of the nonzero drive signal to be applied (by the signalmodification circuit/module 104/204) in an amplitude-limited mode 606,in which the second portion of the nonzero drive signal is scaled to anamplitude-limited voltage range or amplitude-limited current range,wherein an absolute value of a minimum value or maximum value of theamplitude-limited voltage range or of the amplitude-limited currentrange does not exceed the defined rated maximum voltage or defined ratedmaximum current of the haptic actuator 18/108/208. The second portionmay be, e.g., the second portion of the first nonzero drive signal inFIG. 5, or the second portion of the second nonzero drive signal in FIG.10.

FIG. 12B illustrates a method 900A that is a more specific version ofthe method 900. The method 900A may also include a step 901, and thenproceed to step 902. In step 902, the control circuit 16/106/206 startsa boost timer. For instance, the nonzero drive signal may be the firstnonzero drive signal of FIG. 5 or the first nonzero drive signal, andthe boost timer may be started at time t₁, and begin counting (e.g.,incrementing) from a reset value (e.g., reset value of t=0 sec). Theexample of FIG. 10 may also involve starting a boost timer at time t₁.The boost timer may be started when a beginning of the nonzero drivesignal is detected in a start/idle mode 602, which may be the case ifthe boost timer is at a reset value. In such a situation, the beginningof the nonzero drive signal constitutes a start time of a boost mode 604for the nonzero drive signal. The boost timer may count upwards from thereset value or may count down from the first defined time threshold.

Like in method 900, method 900A may include a step 903, in which thecontrol circuit causes a first portion of the nonzero drive signal to beapplied in the boost mode 604. In step 904A, which may be an embodimentof step 904, the control circuit 16/106/206 may determine whether acurrent value of the boost timer is greater than the first defined timethreshold. For instance, the control circuit 16/106/206 may perform step904A periodically (e.g., every 1 ms or every 50 μs). Step 904A may applyto a situation in which the boost timer counts upwards. In analternative embodiment, the boost timer may count down, and the controlcircuit 16/106/206 may instead determine whether the boost timer hascounted down from the first defined time threshold to a value of zero.

In an embodiment, if the value of the boost timer has not yet exceededthe first defined time threshold, the control circuit 16/106/206 mayreturn to step 903 to continue applying the nonzero drive signal in theboost mode 604. The value of the boost timer may exceed the firstdefined time threshold at, e.g., time t₂ in FIG. 5 or t₄ in FIG. 10. Atthat point, the control circuit 16/106/206 may proceed to step 905, inwhich a second portion of the nonzero drive signal is applied in theamplitude-limited mode 606.

FIG. 13 illustrates a method 1000 that includes the steps of FIG. 12B,and further includes steps 1002-1010 that describe operation of thecontrol circuit 16/106/206 after entering the amplitude-limited mode 606in step 905. In step 1002, the control circuit 16/106/206 detects an endof the nonzero drive signal, such as an end of the first nonzero drivesignal at time t₃ in FIG. 5, or an end of the second nonzero drivesignal at time t₅ in FIG. 10. The end of the nonzero drive signal maydefine a start time of a cool-down period. In an embodiment, a cool-downtimer may be started when the end of the nonzero drive signal isdetected.

In step 1004, the control circuit detects a subsequent nonzero drivesignal, such as the second nonzero drive signal in FIG. 5, or the thirdnonzero drive signal in FIG. 10.

In step 1006, the control circuit determines whether a cool-downduration exceeds a second defined time threshold (e.g., a cooling timethreshold). The control circuit may monitor the cool-down duration inorder to make this determination. The cool-down duration may be a lengthof a cool-down period that immediately precedes the subsequent nonzerodrive signal, and may be reflected in a value of the cool-down timer.More generally speaking, the cool-down duration may be a durationbetween a beginning of the subsequent nonzero drive signal and an end ofa previous nonzero consecutive nonzero drive signal. For instance, ifthe subsequent nonzero drive signal is the second nonzero drive signalin FIG. 5, the cool-down duration may be equal to t4−t3. If thesubsequent nonzero drive signal is the third nonzero drive signal inFIG. 5, the cool-down duration may be equal to t7−t5. In an embodiment,if the cool-down timer counts downward, step 1006 may involve thecontrol circuit 16/106/206 determining whether a current value of thecool-down timer has reached zero.

Returning to FIG. 13, in response to determining that the cool-downduration exceeds the second defined time threshold, the control circuitin step 1008 causes at least a first portion of the subsequent nonzerodrive signal (e.g., the third nonzero drive signal in FIG. 10) to beapplied (by the signal modification circuit/module 104/204) in the boostmode 604. In response to determining that the cool-down duration doesnot exceed the second defined time threshold, the control circuit instep 1010 causes all of the subsequent nonzero drive signal (e.g., thesecond nonzero drive signal in FIG. 5) to be applied in theamplitude-limited mode 606.

FIG. 14 illustrates a method 1100 that illustrates the extended boostmode 605 of FIGS. 4 and 11. The method involves steps of FIG. 12B, andfurther includes a step 1102, in which the control circuit 16/106/206determines if the nonzero signal, such as the first nonzero drive signalin FIG. 7, is at a zero crossing point, which may be a point at whichthe nonzero drive signal crosses a value of zero. If so, the controlcircuit 16/106/206 transitions to the amplitude-limited mode (step 905).If, however, the control circuit determines that the nonzero drivesignal is not at a zero crossing point, the control circuit at step 1104causes the nonzero drive signal to be applied in an extended boost mode605, in which the nonzero drive signal continues to be scaled to aboosted voltage range or booted current range. For instance, the portion801Y of the voltage signal 801 in FIG. 7 may have been applied in theextended boost mode 605.

In step 1106, while in the extended boost mode, the control circuit16/106/206 determines whether nonzero drive signal has reached a zerocrossing point. If so, the control circuit 16/106/206 transitions to theamplitude-limited mode. Otherwise, the control circuit in step 1108determines, while in the extended boost mode, if the nonzero drivesignal has been applied in the extended boost mode for a third durationthat is greater than a third defined time threshold (e.g., an extendedboost timeout threshold). If the third duration is greater than thethird defined time threshold, the control circuit 16/106/206 maytransition to the amplitude-limited mode 606. Thus, the extended boostmode 605 may end at an earlier of: i) a zero crossing point of thenonzero drive when it is in the extended boost mode, or ii) a durationsince a start of the extended boost mode exceeding the third definedtime threshold, such as an extended boost timeout threshold.

FIGS. 15A and 15B illustrate a method 1200 for applying one or morenonzero drive signals to a haptic actuator, according to the statemachine of FIG. 8. In an embodiment, the method 1200 includes a step1201, in which a control circuit 16/106/206 detects or otherwisereceives a beginning of a first nonzero drive signal (e.g., the firstnonzero drive signal in FIG. 9) for use by a haptic actuator to generatea haptic effect.

In step 1203, the control circuit causes a current nonzero drive signalto be applied in a boost mode 604. The steps in method 1200, includingstep 1203, may be part of a loop, which may cycle through numerousiterations. In other words, step 1203 may be performed multiple times.When the step 1203 is being performed the first time, which occurs whenthe first nonzero drive signal is detected, the first nonzero drivesignal is the current nonzero drive signal. When the nonzero first drivesignal has ended and step 1203 is being performed on a subsequentnonzero drive signal, the subsequent nonzero drive signal may be thecurrent nonzero drive signal. In an embodiment, the beginning of thefirst nonzero drive signal may define a start time of the boost mode604.

In step 1205, a determination is made for whether a boost durationexceeds a first defined time threshold, wherein the boost duration is aduration since the start time of the boost mode 604. For instance, withreference to FIG. 9, the start time of the boost mode 604 may be t₁.When the step 1205 is being performed at a time t, the boost durationmay be t-t₁. Step 1205 may be part of a step of monitoring whether thefirst defined time threshold has been exceeded, which may be donecontinuously or periodically.

In step 1207, in response to determining that the boost duration exceedsthe first defined time threshold, the control circuit may apply anyremaining portion of the current nonzero drive signal in theamplitude-limited mode 606.

In step 1209, after the current nonzero drive signal has ended, thecontrol circuit 1207 may wait for any subsequent nonzero drive signal inthe cool-down mode 608. The beginning of the cool-down mode may be astart time of a cool-down period.

In step 1211, in response to determining that the boost duration has notyet exceeded the first defined time threshold, the control circuit maycontinue applying the current nonzero drive signal in the boost mode 604until it detects an end of the current nonzero drive signal in step1211.

In step 1213, the control circuit may wait for any subsequent nonzerodrive signal in a boost cool-down mode 607. A beginning of the boostcool-down mode 607 may define a start time of a cool-down period. In theboost cool-down mode 607, the control circuit may determine in step 1215whether the boost duration (the duration since t₁) exceeds the firstdefined time threshold.

In step 1217, in response to determining that the boost duration exceedsthe first defined time threshold, the control circuit may exit the boostcool-down mode 607 and enter the cool-down mode 608. For instance, FIG.9 illustrates a situation in which the control circuit determines, attime t₅, that the boost duration exceeds the first defined timethreshold, and transitions from the boost cool-down mode 607 to thecool-down mode 608. In the cool-down mode 608, the control circuit mayin step 1217 wait for any subsequent nonzero drive signal. In anembodiment, a beginning of the most recent period spent by the controlcircuit 16/106/206 in the boost cool-down mode may define a start timeof a most recent cool-down period.

In the cool-down mode 608 in step 1218, which is illustrated in FIG.15B, the control circuit may determine whether a cool-down duration hasreached or has exceeded a second defined time threshold. The cool-downduration may be a duration since a start time of the most recentcool-down period. For instance, with reference to FIG. 9, the controlcircuit may be in the cool-down mode 608 in the period between t₅ andt₆, and in the interval between t₇ and t₈. The period between t₅ and t₆may be part of a cool-down period that started when the control circuit16/106/206 was still in the boost cool-down mode 607, which started att₄. Thus, during that period, the control circuit 16/106/206 may in step1218 determine whether a duration since time t₄ (i.e., t-t₄), which maybe the cool-down duration, has exceeded the second defined timethreshold. The later period of t₇ to t₈ may be part of a cool-downperiod that starts at t₇. Thus, in this period, the control circuit16/106/206 may also be performing step 1218 by determining whether aduration since time t₇ (i.e., t-t₇), which may be the cool-downduration, has exceeded the second defined time threshold.

In step 1221, in response to determining that the cool-down duration hasnot yet reached or exceeded the second defined time threshold, thecontrol circuit 16/106/206 may continue to wait in the cool-down mode608 until it detects another nonzero drive signal in step 1221. Forinstance, in the period between t5 and t6 in FIG. 9, the cool-downduration does not exceed the second defined time threshold. Thus, thecontrol circuit 16/106/206 waits in the cool-down mode 608. When anothernonzero drive signal is detected, the control circuit 16/106/206 maythen return to step 1207 to apply the detected nonzero drive signal inthe amplitude-limited mode 606. If, in step 1221, the cool-down durationdoes exceed the second defined time threshold, the control circuit mayreturn to the start/idle mode 602, after which a subsequent nonzerodrive signal (e.g., 815) will be applied in the boost mode 604 again.For instance, in the cool-down period that begins with time t7, thecontrol circuit 16/106/206 may determine at time t8 that the cool-downduration has exceeded the second defined time threshold, and thentransition to the start/idle mode 602, after which the fourth nonzerodrive signal in FIG. 9 is applied in the boost mode.

Returning to FIG. 15A, in step 1219, in response to determining that thefirst duration has not exceeded the first defined time threshold, thecontrol circuit may continue to wait for any subsequent nonzero drivesignal in the boost cool-down mode 607, until it detects another nonzerodrive signal (e.g., 813) in step 1219. Because the first duration hasnot yet exceeded the first defined time threshold, at least a portion ofthe subsequent drive signal 813 may also be applied in the boost mode604.

FIG. 16 illustrates a method 1400 in which a boost duration exceeds afirst defined time threshold, such as the boost timeout threshold,during a cool-down period between two nonzero drive signals, rather thanwhile a nonzero drive signal is being applied to a haptic actuator. Inan embodiment, the method begins in step 1401, in which the controlcircuit 16/106/206 receives a nonzero drive signal to be applied to thehaptic actuator 18/108/208, wherein the haptic actuator has a definedrated maximum voltage or current. For instance, step 1401 may involvethe control circuit receiving the first nonzero drive signal or thesecond nonzero drive signal in FIG. 9. In an embodiment, the nonzerodrive signal may be received from an output of a signal generator. In anembodiment, the step 1401 may involve detecting a beginning of thenonzero drive signal.

In step 1403, the control circuit 16/106/206 causes the nonzero drivesignal to be applied to the haptic actuator 18/108/208 in the boost mode604, in which the nonzero drive signal is scaled to a boosted voltagerange or boosted current range, wherein an absolute value of a minimumvalue or maximum value of the boosted voltage range or boosted currentrange exceeds the defined rated maximum voltage or defined rated maximumcurrent of the haptic actuator 18/108/208. For instance, step 1403 mayinvolve the control circuit 16/106/206 applying the first nonzero drivesignal and the second nonzero drive signal of FIG. 9 in the boost mode604. Thus, like in step 903, the nonzero drive signal may be one of oneor more consecutive nonzero drive signals that are applied in the boostmode. The control circuit 16/106/206 may be concurrently monitoring aboost duration, which may be a duration since a start time of the boostmode 604, to detect whether the boost duration exceeds a first definedtime threshold, such as a boost timeout threshold. In an embodiment, thestart time of the boost mode may refer to the most recent start time ofthe boost mode 604. In the context of FIG. 9, when the first nonzerodrive signal and the second nonzero drive signal are being applied inthe boost mode 604, the most recent start time of the boost mode may bet₁. When the fourth nonzero drive signal is later applied in the boostmode 604, the most recent start time of the boost mode may be t₉.

In step 1405, the control circuit 16/106/206 detects, after an end ofthe nonzero drive signal, a boost duration exceeding a first definedtime threshold. In the context of FIG. 9, for instance, although thecontrol circuit 16/106/206 monitors the boost duration while the firstnonzero drive signal and the second nonzero drive signal are beingapplied in the boost mode 604, the boost duration does not exceed theboost timeout threshold until the first nonzero drive signal and thesecond nonzero drive signal has ended. In FIG. 9, the second nonzerodrive signal ends at t₄. After time t₄, the control circuit 16/106/206detects at time t₅ the boost duration exceeding the boost timeoutthreshold.

In step 1407, the control circuit 16/106/206 detects, after the end ofthe nonzero drive signal, a subsequent nonzero drive signal to beapplied to the haptic actuator 18/108/208, wherein the nonzero drivesignal and the subsequent nonzero drive signal are consecutive nonzerodrive signals. For instance, the subsequent nonzero drive signal may bethe third nonzero drive signal in FIG. 9, and is detected after an endof the second nonzero drive signal, wherein the second nonzero drivesignal and the third nonzero drive signal are consecutive nonzero drivesignals.

In step 1409, the control circuit 16/106/206 causes the subsequentnonzero drive signal to be applied in an amplitude-limited mode, inwhich the second portion of the nonzero drive signal is scaled to anamplitude-limited voltage range or amplitude-limited current range,wherein an absolute value of a minimum value or maximum value of theamplitude-limited voltage range or of the amplitude-limited currentrange does not exceed the defined rated maximum voltage or defined ratedmaximum current of the haptic actuator 18/108/208. For instance, upondetecting the third nonzero drive signal in FIG. 9, the control circuit16/106/206 causes the amplitude modification circuit/module 104/204 toapply the third nonzero drive signal in the amplitude-limited mode.

In an embodiment, the subsequent nonzero drive signal is applied in theamplitude-limited mode only in response to a determination that acool-down duration, which is a duration between the end of the nonzerodrive signal and a beginning of the subsequent nonzero drive signal, isless than a second defined time threshold. For instance, the thirdnonzero drive signal in FIG. 9 is applied in the amplitude-limited modeonly in response to a determination that a duration between t₄ and t₆ isless than (or, more generally, does not exceed) a second defined timethreshold, such as a cooling time threshold. If the cooling timethreshold is exceeded, then the control circuit 16/106/206 may havealready transitioned to the start/idle mode 602, which would haveallowed the third nonzero drive signal to be applied in the boost mode604. In an embodiment, method 1400 may incorporate features discussedabove with respect to method 900, 900A, 1000, 1100, or 1200. Forinstance, the method 1400 may incorporate the steps involved intransitioning between the amplitude-limited mode 606 and the cool-downmode 608, and transitioning from the cool-down mode 608 to thestart/idle mode 602.

As discussed above, some embodiments herein relate to determiningwhether to apply a nonzero drive signal in a boost mode or in anamplitude-limited mode (or, more generally, an amplitude-limited mode)based on tracking an accumulated boost time, an accumulated heatingtime, and an accumulated cooling time (also referred to as a cumulativeboost time, a cumulative heating time, and a cumulative cooling time,respectively). The nonzero drive signal may be defined by a continuoussignal, such as an analog signal, or may be defined by a plurality ofdiscrete signal values, which are also referred to as discrete samplesor discrete signal samples.

In an embodiment, the accumulated boost time may track, e.g., how longone or more nonzero drive signals have been applied in a boost modesince a start time of the boost mode. More specifically, the accumulatedboost time may be a cumulative amount of time that the control circuithas spent applying one or more nonzero drive signals while in the boostmode, and may be measured from a most recent reset of the accumulatedboost time, or after the most recent reset thereof. In the statemachines discussed above, such as with respect to FIGS. 8 and 11, theboost duration may continue to increment or otherwise continue countingeven after a nonzero drive signal has ended. For instance, after thecontrol circuit 16/106/206 transitions from the boost mode 604 to theboost cool-down mode 607, the boost duration may continue to increase.Thus, as illustrated in FIG. 9, the boost duration may be able to exceeda first defined time threshold during a cool-down period between t₄ andt₆. The accumulated boost time, on the other hand, may change value onlywhile a nonzero drive signal is being applied. Thus, when a nonzerodrive signal ends and the boost timeout threshold has not been exceededby the accumulated boost time, the accumulated boost time may be pausedat its current value until a subsequent nonzero drive signal isreceived. In an embodiment, the methods discussed below may replace theuse of the accumulated boost time with the use of the boost duration.

In an embodiment, when the accumulated boost time reaches or exceeds afirst defined time threshold, the control circuit 16/106/206 may switchfrom applying nonzero drive signals in the boost mode 604 to applyingnonzero drive signals in the amplitude-limited mode. More specifically,the accumulated heating time may be either i) a cumulative amount oftime in which the one or more nonzero drive signals in the boost modehave being applied to the haptic actuator at voltages or currents thatexceed, in absolute value, the defined rated maximum voltage or current,or ii) a second time that is determined by scaling the cumulative amountof time in which the one or more drive signals in the boost mode havebeen applied at voltages or currents that exceed in absolute value thedefined rated maximum voltage or current.

In an embodiment, the accumulated heating time may be used to set aminimum amount of time that the haptic actuator has to cool before anymore nonzero drive signals can be applied in the boost mode again. Inother words, the accumulated heating time may be used to determine orotherwise define a cooling time threshold (which may also be referred toas a second time threshold). Thus, the cooling time threshold may be adetermined cooling time threshold (or, more generally, a determinedsecond time threshold) that is defined in a dynamic manner. The controlcircuit may cause nonzero drive signals to be applied in theamplitude-limited mode until the accumulated cooling time exceeds thecooling time threshold. When the accumulated cooling time does exceedthe cooling time threshold, the control circuit may reset theaccumulated cooling time, the accumulated heating time, and theaccumulated boost time t₀, e.g., zero.

FIG. 17 generally illustrates an accumulated boost time and accumulatedheating time for a sinusoidal nonzero drive signal being applied in aboost mode. More specifically, FIG. 17 depicts a sinusoidal nonzerodrive signal after it has been boosted in a boost mode. As discussedabove, the boost mode may refer to a mode in which signal values of anonzero drive signal are scaled or otherwise mapped to a boosted voltagerange, in which an absolute value of a maximum or minimum of the boostedvoltage range exceeds a defined rated maximum voltage of a hapticactuator 18/108/208. In FIG. 3, the nonzero drive signal may have signalvalues that are, e.g., 8-bit digital values that are in a range of −128to 127 (in two's complement format), wherein the digital values aredimensionless values. In one example, the haptic actuator 18/108/208 mayhave a defined rated maximum voltage of, e.g., 5 V. The boosted modemay, in one example map the range of digital values for the nonzerodrive signal, which is from −128 to 127, to a boosted voltage range ofabout −10 V to 10 V. The mapping may be performed by, e.g., multiplyingthe digital values by 10/128 V. In this example, the digital value of 63may be mapped to 5 V, and the digital value of −63 may be mapped to −5V.

FIG. 17 further depicts the nonzero drive signal being driven in theboost mode from t₀ to t₁₁. In an embodiment, an accumulated boost timemay track how long a nonzero drive signal (or multiple nonzero drivesignals) has been applied in the boost mode. In the example of FIG. 17,the accumulated boost time may start from zero, and may increase tot₁₁=10.28 ms.

In an embodiment, when the accumulated boost time reaches a firstdefined time threshold (e.g., a boost timeout threshold of 9 ms), acontrol circuit 16/106/206 may begin to monitor for an earliestopportunity to exit the boost mode. The earliest opportunity may be thenonzero drive signal reaching a zero crossing point, or the accumulatedboost time reaching a defined prolonged total boost time threshold,whichever happens earlier. For instance, at time t₉, the control circuitmay begin to monitor for one of the two conditions discussed above. Inan embodiment, the defined prolonged total boost time threshold may moregenerally be a fourth defined time threshold, which may be equal to thefirst defined time threshold (e.g., the boost timeout threshold) plusthe third defined time threshold (e.g., the extended boost timeoutthreshold). In some instances, the defined prolonged total boost timethreshold may more generally be the first defined time threshold plus adefined extended duration (e.g., 9 ms+3 ms extended duration=12 ms).Thus, the defined prolonged total boost time threshold may be equal tothe boost timeout threshold plus a defined extended duration. In theexample of FIG. 17, the earliest opportunity to exit the boost modeoccurs when the nonzero drive signal reaches a zero crossing point att₁₁. In another embodiment, the boost mode is exited when theaccumulated boost time reaches the first defined threshold at t₉ orreaches the defined prolonged total boost time threshold, regardless ofwhether it has reached a zero crossing point.

In an embodiment, after the zero crossing point at t₁₁ or after theaccumulated boost time reaches the defined prolonged total boost timethreshold, a remaining portion of the nonzero drive signal may beapplied in an amplitude-limited mode in which signal values mapped to anamplitude-limited voltage range, wherein an absolute value of a minimumof the range and an absolute value of the maximum of the range do notexceed the defined rated maximum voltage. For instance, theamplitude-limited mode may map the range of digital values of thenonzero drive signal, which is from −128 to 127, to an amplitude-limitedvoltage range of −5 V to 5 V, or of −4 V to 4 V.

In an embodiment, an accumulated heating time may track a total amountof time in which boosted signal values of a nonzero drive signal (or ofmultiple nonzero drive signals) have respective absolute values thatexceed the defined rated maximum voltage. The boosted signal values mayalso be referred to as scaled signal values or mapped signal values. Forinstance, in FIG. 17 the nonzero drive signal may be scaled to bevoltage values that exceed 5 V in absolute value from t₁ to t₂, thenfrom t₃ to t₄, then from t₆ to t₇, and then from t₈ to t₁₀. Thus, inthis example, the accumulated heating time may be based on a sum of(t₂−t₁)+(t₄−t₃)+(t₇−t₆)+(t₁₀−t₈). The accumulated heating time may beequal to this sum, or may be a value that adjusts this sum. Forinstance, the accumulated heating time may be a scaled version (e.g.,multiplied version) of this sum. In a more specific example, theaccumulated heating time may be equal to this sum multiplied by90°/(90°−arcsin(V_(rated)/V_(max))). V_(rated) may be the defined ratedmaximum voltage of the haptic actuator 18/108/208, while V_(max) may bethe absolute value of the maximum or minimum of the boosted voltagerange, whichever is greater. In this example, V_(rated) is 5 V, whileV_(max) is 10 V. In the example of FIG. 17, this multiple is equal to90°/(90°−30°)=1.5. The accumulated heating time in FIG. 17 may be lessthan the accumulated boost time, even with the scaling of 1.5. This maybe because while the boost mode is mapping 127, which is the maximumvalue that can be represented by an 8-bit value in two's complementformat, to the maximum 10 V of the boosted voltage range, the signalvalues of the nonzero drive signal in FIG. 17 do not actually reach 127(rather, the maximum of the signal values is about 105). In anotherexample, if the signal values of the nonzero drive signal do reach 127,or more generally span the full range of −128 to 127, the scalingdiscussed above may cause the accumulated heating time to equal to theaccumulated boost time.

In any of the embodiments herein, the accumulated heating time may bereplaced or supplemented with a more general measurement, which may bereferred to as an accumulated heating measurement. The accumulatedheating measurement may be indicative of an amount of heating of thehaptic actuator. The accumulated heating measurement includes theaccumulated heating time discussed above, or includes other measurablequantities, such as an area (e.g., an integral) under the boostednonzero drive signal for the duration(s) in which its boosted signalvalues exceed the defined rated maximum voltage. For instance, theaccumulated heating measurement may be an integral of the nonzero drivesignal in FIG. 17 from t₁ to t₂, then from t₃ to t₄, then from t₆ to t₇,then from t₈ to t₉.

FIG. 18 illustrates a flow diagram of an example method 1500 forapplying one or more nonzero drive signals. The method may be performedby, e.g., the control circuit 16/106/206. In the example method 1500,the accumulated boost time, accumulated heating time, and accumulatedcooling time start at a reset value of zero. In another embodiment, theaccumulated boost time, accumulated heating time, and accumulatedcooling time may have respective reset values other than zero (therespective reset values may be the same, or may be different).

In an embodiment, the method 1500 may begin at step 1503, in which thecontrol circuit 16/106/206 receives a nonzero drive signal to be appliedto a haptic actuator 18/108/208, wherein the haptic actuator has adefined rated maximum voltage or a defined rated maximum current. In anembodiment, the nonzero drive signal may be received from a signalgenerator 102/202. In one example, the nonzero drive signal received instep 1503 may be the first nonzero drive signal 1801 of FIG. 21A,wherein the nonzero drive signal 1801 is applied as voltage signal 1811.In another example, the nonzero drive signal received in step 1503 maybe the first nonzero drive signal 1901 in FIG. 21B, wherein the firstnonzero drive signal 1901 is applied as voltage signal 1911.

In step 1505, the control circuit 16/106/206 may cause a first portionof the nonzero drive signal to be applied in a boost mode, in whichsignal values of the nonzero drive signal are scaled to a boostedvoltage range or boosted current range, wherein an absolute value of aminimum value or maximum value of the boosted voltage range or boostedcurrent range exceeds the defined rated maximum voltage or current ofthe haptic actuator, and wherein the nonzero drive signal is one of oneor more nonzero drive signals that are applied in the boost mode. Forinstance, the control circuit may control an amplifier of the signalmodification circuit/module 104/204 to apply the nonzero drive signal inthe boost mode. In one example, step 1505 may include applying a firstportion of the nonzero drive signal 1801 in the boost mode as portion1811 a of voltage signal 1801, or applying a first portion 1901 a ofnonzero drive signal 1901 in the boost mode as portion 1911 of voltagesignal 1911. In an embodiment, the nonzero drive signal may be a latestone (i.e., latest in time) of a plurality of consecutive nonzero drivesignals that were or are to be applied in the boost mode. For instance,an earlier nonzero drive signal may precede nonzero drive signal 1801,and may have also been applied in the boost mode. The plurality ofconsecutive nonzero drive signals may be all of the nonzero drivesignals that were or are to be applied in the boost mode after the mostrecent reset of the accumulated boost time.

In step 1507, the control circuit 16/106/206 may track an accumulatedboost time, wherein the accumulated boost time is a cumulative amount oftime that the control circuit has spent applying the one or more nonzerodrive signals while in the boost mode, wherein the accumulated boosttime is measured from a most recent reset of the accumulated boost timeor after the most recent reset thereof. The tracking may be done on acontinuous or near-continuous basis. For instance, step 1507 may includeupdating the accumulated boost time whenever a signal value or set ofsignal values are applied in the boost mode. With reference to theexamples of FIGS. 21A and 21B, the accumulated boost time may increaseby Δt_(b) at the end of the boost mode. The most recent reset of theaccumulated boost time may have occurred at or before a beginning of thenonzero drive signal 1801 or 1901. For instance, with respect to FIG.17, the accumulated boost time may have been reset at, e.g., 20 msbefore t₀. Thus, the accumulated boost time may be measured from themost recent reset, or after the reset. If there is no earlier,intervening nonzero drive signal during that 20 ms, the accumulatedboost time stays at its reset value during that 20 ms period. Then, whenthe nonzero drive signal is received at to, the accumulated boost timemay begin to increase. Alternatively, if there was an earlier,intervening nonzero drive signal during that 20 ms period, theaccumulated boost time may have begun increasing while the earlier,intervening nonzero drive signal was applied in the boost mode.

In step 1509, the control circuit 16/106/206 may track an accumulatedheating time, wherein the accumulated heating time is: i) a cumulativeamount of time in which the one or more nonzero drive signals in theboost mode have being applied to the haptic actuator at voltages orcurrents that exceed, in absolute value, the defined rated maximumvoltage or current, or ii) a second time that is determined by scalingthe cumulative amount of time in which the one or more drive signals inthe boost mode have been applied at voltages or currents that exceed inabsolute value the defined rated maximum voltage or current. Theaccumulated heating time may also be performed on a continuous ornear-continuous basis. For instance, whenever a signal value or set ofsignal values are applied in the boost mode, as boosted or scaled signalvalues, step 1509 may check whether an absolute value of the boosted orscaled signal values exceed the defined rated maximum voltage. If theboosted signal values do exceed the defined rated maximum voltage inabsolute value, the control circuit 16/106/206 may increase theaccumulated heating time by a time period represented by the signalvalue or set of signal values.

In step 1511, the control circuit 16/106/206 detects the accumulatedboost time reaching or exceeding a first defined time threshold. Thecontrol circuit may monitor the accumulated boost time to determinewhether it has reached or exceeded a first defined time threshold. Inthe example method 1500, the first defined time threshold may be reachedbefore an end of the first nonzero drive signal. With respect to theexamples depicted in FIGS. 21A and 21B, the accumulated boost time mayreach the first defined threshold (e.g., 9 ms) at or shortly beforet_(b). For instance, t_(b) is equal to the first defined threshold ifthe nonzero drive signal 1801/1901 is at a zero crossing point at thefirst defined threshold. If, at the first defined threshold, the nonzerodrive signal 1801/1901 is not at a zero crossing point, then t_(b) maycorrespond to the nonzero drive signal 1801/1901 reaching the zerocrossing point, or may equal a defined prolonged total boost timethreshold (e.g., 12 ms).

In step 1513, in response to detecting the accumulated boost timereaching or exceeding the first defined time threshold, the controlcircuit 16/106/206 causes a second portion of the nonzero drive signalto be applied in an amplitude-limited mode, in which the second portionof the nonzero drive signal is scaled to an amplitude-limited voltagerange or amplitude-limited current range, wherein an absolute value of aminimum value or maximum value of the amplitude-limited voltage range orof the amplitude-limited current range does not exceed the defined ratedmaximum voltage or current of the haptic actuator. For example, in FIG.21A, the second portion of nonzero drive signal 1801 may be applied asportion 1801 b of voltage signal 1801. In FIG. 21B, the second portionof nonzero drive signal 1901 may be applied as portion 1901 b of voltagesignal 1901.

In an embodiment, the nonzero drive signal may end after the secondportion of the nonzero drive signal is applied. More specifically, anend of the second portion may be an end of the nonzero drive signal.After the end of the nonzero drive signal, the control circuit16/106/206 may experience a period in which it does not detect orotherwise receive any nonzero drive signal from the signal generator102/202. In some cases, this period may be referred to as a cool-downperiod or cooling period, or as an idle period. In this period, theoutput of the signal generator 102/202 may be considered to be undefined(e.g., the signal generator 102/202 may set a flag indicating that it iscurrently not outputting any valid signal values), or may be zero, ormay be value that is less than a defined noise threshold in absolutevalue.

FIG. 19 illustrates steps involving tracking an amount of time in whichthe haptic actuator (e.g., 18/108/208) cools. More specifically, in step1601, the control circuit 16/106/206 may determine a second timethreshold, such as a cooling time threshold, based on the accumulatedheating time. The cooling time threshold may later be used to determineif the haptic actuator 18/108/208 has been allowed to sufficiently coolto be able to use the boost mode again. In an embodiment, the coolingtime threshold may be calculated or otherwise determined as a multipleof the current accumulated heating time (e.g. 7×current accumulatedheating time). If the accumulated heating time changes over time, theresting time threshold may also change.

In an embodiment, the cooling time threshold may be calculated wheneverthe accumulated heating time is updated, or after a most recent updateof the accumulated heating time. For instance, with reference to FIG.17, the cooling time threshold may be calculated at or after time t₁₀.In a more specific example, the cooling time threshold may be calculatedat an end of the nonzero drive signal, because the accumulated heatingtime is updated before (or at) the end of the nonzero drive signal. Withreference to FIGS. 21A and 21B, the cooling time threshold may becalculated at (or before) an end of nonzero drive signal 1801 or an endof nonzero drive signal 1901.

In an embodiment, the cooling time threshold may be calculated based onthe accumulated heating time when (or after) the accumulated boost timereaches the first defined threshold. With reference to FIG. 3 again, thecooling time threshold in this embodiment may be calculated at or aftert₉. Although the accumulated heating time used to make this calculationmay still increase from t₉ to t₁₀ as the control circuit 16/106/206waits for a zero crossing point, the difference between calculating thecooling time threshold at t₉ versus at tio may be sufficiently small tonot affect boost protection of the haptic actuator 18/108/208.

In step 1603, the control circuit 16/106/206 may track an accumulatedcooling time, wherein the accumulated cooling time is a cumulativeamount of time in which the control circuit receives no nonzero drivesignal to be applied to the haptic actuator, and is measured from a mostrecent reset of the accumulated cooling time, or after the most recentreset thereof. With reference to FIG. 21A, the accumulated cooling timemay be increased in step 1603 from zero (its reset value) to Δt_(c).With reference to FIG. 7B, the accumulated cooling time may be increasedin step 1603 from zero to Δt₁. In FIG. 7B, the accumulated cooling timemay later increase to add Δt₂, Δt₃, etc., until it is reset. In anembodiment, after a particular nonzero drive signal ends, theaccumulated cooling time is updated only at a beginning of a subsequentconsecutive nonzero drive signal. In an embodiment, the accumulatedcooling time is periodically updated at regular intervals (e.g., every 1ms, the control circuit 16/106/206 determines if a nonzero drive signalhas been received, and increments the accumulated cooling time by 1 msif no nonzero drive signal has been received).

In an embodiment, step 1603 is not performed unless the accumulatedheating time is more than its reset value (e.g., more than zero). Forinstance, the accumulated cooling time begins to be tracked only afterthe accumulated heating time increases from its reset value (which maybe referred to as a reset heating value) to a higher value, such thatthe accumulated cooling time is not tracked if the accumulated heatingtime stays at the reset heating value (e.g., zero). For instance, withreference to FIG. 21C, the nonzero drive signals 1911, 1913, 1915 may beapplied in a boost mode as voltage signals 1921, 1923, 1925. However,the signal values of the nonzero drive signals 1911-1915 may be smallenough such that, even after being scaled in the boost mode to voltagesignals 1921-1925, are still less than the defined rated maximum voltageof a haptic actuator 18/108/208. Thus, even though the nonzero drivesignals 1911, 1913, 1915 are applied in a boost mode, the accumulatedheating time remains zero at an end of the nonzero drive signal 1915. Inthis example, the accumulated cooling time stays the same after each ofthe nonzero drive signals 1911, 1913, 1915. Thus, at a beginning of thenonzero drive signal 1917 (which is applied as voltage signal 1927), theaccumulated cooling time is still zero. In this situation, thedetermination of the cooling time threshold may still be performed instep 1601, or may be omitted. If step 1601 is omitted, the accumulatedboost time may be set to be equal to the accumulated heating time, at abeginning of each of nonzero drive signals 1911, 1913, 1915, and 1917.This adjustment may result in a reset of the accumulated boost time inthis situation to zero. The adjustment of the accumulated boost timebased on the accumulated heating time is discussed more generally below.

In step 1605, the control circuit 16/106/206 receives, after the end ofthe nonzero drive signal, a subsequent nonzero drive signal. Forinstance, step 1605 may involve receiving nonzero drive signal 1803 ornonzero drive signal 1903 in FIG. 21A or 21B.

In step 1606, the control circuit 16/106/206 determines, when thesubsequent nonzero drive signal is received, whether the accumulatedcooling time has reached or exceeded the cooling time threshold.

In step 1607, the control circuit 16/106/206 applies the subsequentnonzero drive signal in a manner that is based on whether theaccumulated cooling time has reached or exceeded the cooling timethreshold. The control circuit may monitor the accumulated cooling timeto determine whether it has reached or exceeded the cooling timethreshold. In an embodiment, this determination may also oralternatively be based on whether the accumulated boost time has beenreset to a reset value (or, more generally, whether the accumulatedboost time is less than the first defined threshold). Step 1607 may bebased on a context that the accumulated boost time has already reachedthe first defined threshold (which was detected in step 1513). Thus,step 1607 may determine whether the accumulated boost time has beenreset to zero, rather than the more general case of whether theaccumulated boost time is less than the first defined threshold. A laterembodiment discusses a context in which the accumulated boost time hasnot reached the first defined threshold when a second nonzero drivesignal is received. In that context, the control circuit 16/106/206makes a more general determination of whether the accumulated boost timeis less than the first defined threshold.

In an embodiment, the accumulated cooling time is determined in step1607 to have not yet reached the second time threshold when thesubsequent nonzero drive signal is received, and wherein the subsequentnonzero drive signal is applied in the amplitude-limited mode.

In an embodiment, the accumulated cooling time is determined to havereached or exceeded the second time threshold when the subsequentnonzero drive signal is received, and wherein at least a portion of thesubsequent nonzero drive signal is applied in the boost mode. Theaccumulated boost time, accumulated heating time, and the accumulatedcooling time may be reset in response to the accumulated cooling timehas reaching or exceeding the second time threshold. For instance, FIG.20 illustrates example sub-steps 1607 a-1607 c for performing step 1607of FIG. 19. More specifically, in step 1607 a, the control circuit16/106/206 determines whether the accumulated cooling time is equal toor greater than the cooling time threshold. Alternatively oradditionally, the control circuit 16/106/206 may directly determinewhether the accumulated boost time has been reset to zero.

In step 1607 b, in response to a determination that the accumulatedcooling time is equal to or greater than the cooling time threshold, orthat the accumulated boost time has been reset to zero, the controlcircuit 16/106/206 applies at least a portion of the subsequent nonzerodrive signal in the boost mode. With reference to FIG. 21A, theaccumulated cooling time may reach Δt_(c) (e.g., 114 ms), which isgreater than the cooling time threshold (e.g., 84 ms), and which maycause the accumulated cooling time to be reset. The reset may occur, forinstance, when the subsequent nonzero drive signal 803 is received, or,alternatively, as soon as the accumulated cooling time reaches thecooling time threshold (if the accumulated cooling time is being updatedat regular intervals). In step 1607 b, a portion 1803 a of thesubsequent nonzero drive signal 1803 may then be applied in the boostmode as portion 1813 a of voltage signal 1813.

In step 1607 c, in response to a determination that the accumulatedcooling time is less than the cooling time threshold, or that theaccumulated boost time has exceeded the first defined time threshold buthas not yet been reset, the control circuit 16/106/206 applies all ofthe subsequent nonzero drive signal in the amplitude-limited mode. Withreference to FIG. 21B, if the subsequent nonzero drive signal is nonzerodrive signal 1903, the accumulated cooling time may be at Δt₁ (e.g.,24.55 ms) when the subsequent nonzero drive signal is received. Thisvalue is less than a cooling time threshold (e.g., 84 ms). Thus, thesubsequent nonzero drive signal is applied in the amplitude-limitedmode.

FIG. 20 illustrates additional steps that may be performed by thecontrol circuit 16/106/206. In step 1701, the control circuit 16/106/206updates the accumulated cooling time after an end of the subsequentnonzero drive signal. With reference to FIG. 21B, this may be done,e.g., at a beginning of a third nonzero drive signal 1905, at abeginning of a fourth nonzero drive signal 1907, and at a beginning of afifth nonzero drive signal 1909. At the beginning of the fifth nonzerodrive signal 1909, the accumulated cooling time may be Δt₁+Δt₂+Δt₃+Δt₄.

In step 1703, the control circuit 16/106/206 may detect, after the endof the second nonzero drive signal, the accumulated cooling timereaching or exceeding the cooling time threshold. With reference to FIG.21B, this detection may occur, e.g., when a beginning of the nonzerodrive signal 1909 is received. In this example, the control circuit16/106/206 may determine, at a beginning of nonzero drive signal 1905,that accumulated cooling time Δt₁+Δt₂ has not reached the cooling timethreshold. It may further determine, at a beginning of nonzero drivesignal 1907, that accumulated cooling time Δt₁+Δt₂+Δt₃ has not reachedthe cooling time threshold. Thus, the nonzero drive signals 1905 and1907 may be applied in the amplitude-limited mode as voltage signals1915 and 1917.

In step 1705, in response to detecting the accumulated cooling timereaching or exceeding the cooling time threshold, the control circuit16/106/206 may reset the accumulated boost time, accumulated heatingtime, and accumulated cooling time to zero or some other reset value.For instance, with reference to FIG. 21B, this may occur when thecontrol circuit 16/106/206 has received a beginning of the nonzero drivesignal 1909, when the accumulated cooling time Δt₁+Δt₂+Δt₃+Δt₄ hasreached or exceeded the cooling time threshold. The resetting isperformed before the nonzero drive signal 1909 is applied to the hapticactuator.

In step 1707, the control circuit 16/106/206 receives an additionalnonzero drive signal after the subsequent nonzero drive signal. Withreference to FIG. 21B, the additional nonzero drive signal may benonzero drive signal 1909.

In step 1709, the control circuit 16/106/206 may apply at least aportion of the additional nonzero drive signal in the boost mode inresponse to a determination that the accumulated boost time has beenreset to zero (or, more generally, that the accumulated boost time isless than the first defined threshold). With reference to FIG. 21B, afirst portion of the nonzero drive signal 1909 may be applied in theboost mode as portion 1919 a of voltage signal 1919. In an embodiment,another portion 1909 b of the nonzero drive signal 1909 may be appliedin the amplitude-limited mode as portion 1919 b of voltage signal 1919(e.g., after the accumulated boost time reaches the first defined timethreshold).

In FIGS. 18 through 21B, after the accumulated boost time reaches orcrosses the first defined threshold during signal 1801/1901, nosubsequent nonzero drive signal is applied in the boost mode until theaccumulated cooling time reaches or exceeds the cooling time threshold.In another embodiment, the accumulated boost time may be set (e.g., atan end of each nonzero drive signal, or at a start of each subsequentnonzero drive signal) to be equal to the accumulated heating time, orequal to the accumulated heating time minus a fraction (e.g., 1/7) ofthe accumulated cooling time. For instance, this step may be done at anytime after step 1513 and before step 1607. In some instances, theaccumulated heating time may be less than the first defined threshold,or the accumulated heating time minus the fraction of the accumulatedcooling time may be less than the first defined threshold. As a result,setting the accumulated boost time to be equal to the accumulatedheating time, or equal to the accumulated heating time minus a fractionof the accumulated cooling time may bring the accumulated boost timeunder the first defined threshold again. As a result, one or moresubsequent nonzero drive signals may be applied in the boost mode for atleast a portion of the respective nonzero drive signal even if theaccumulated cooling time has not reached the cooling time threshold. Inan embodiment, after the accumulated boost time has been set in themanner described above, the accumulated heating time and/or theaccumulated cooling time may be reset to zero. In an embodiment, afterthe accumulated boost time has been set in the manner described above,the accumulated heating time and/or the accumulated cooling time are notreset.

FIGS. 22A and 22B illustrate exiting of a boost mode for a nonzero drivesignal. FIG. 22A depicts a situation in which an accumulated boost timereaches a first defined time threshold at time t₁. After the firstdefined time threshold is reached, the control circuit 16/106/206 maywait for a zero crossing point or for a defined prolonged total boosttime threshold to be reached, whichever comes earlier. In FIG. 22A, theaccumulated boost time reaches the defined prolonged total boost timethreshold at time t₂, before a zero crossing point is reached. Thenonzero drive signal 1919 is then applied in the amplitude-limited modefrom time t₂ going forward. In this instance, a first portion of anonzero drive signal is applied in the boost mode, which is the portionof the nonzero drive signal between a beginning thereof and t=t₁. Asecond portion of the nonzero drive signal is applied in anamplitude-limited mode, wherein the second portion is a portion that isfrom t₂ to an end of the nonzero drive signal. If t₁ is not at a zerocrossing point, the nonzero drive signal may have a third portion thatcontinues to be applied with a boosted voltage range. The third portionis the portion between t₁ and t₂.

In FIG. 22B, the nonzero drive signal 1921 may be similar to nonzerodrive signal in FIG. 22A, except that it may first reach a zero crossingpoint. A first portion of the nonzero drive signal may be applied in theboost mode as the first portion of the voltage signal 1921, while asecond portion is applied in the amplitude-limited mode as the secondportion of the voltage signal 1921. After the first portion of thenonzero drive signal is applied, a third portion of the nonzero drivesignal may be applied before transitioning to applying the secondportion in the amplitude-limited mode. In this instance, the thirdportion of the nonzero drive signal may be a portion that is from t₁ toan earliest zero crossing point that follows t₁, and may be applied witha boosted voltage range.

FIG. 23 illustrates a method 2000 that covers a situation in which allof a first nonzero drive signal is applied in the boost mode, and inwhich no portion is applied in an amplitude-limited mode, even when theaccumulated boost time reaches the first defined threshold. The method2000 covers a situation depicted in FIG. 24A, in which a nonzero drivesignal reaches the first defined threshold at time t₁, but ends shortlythereafter. Thus, there is no remaining portion to apply in theamplitude-limited mode. Method 2000 also includes steps 1503, 1507, and1509 from FIG. 18. The method also includes steps 2001 and 2003.

In step 2001, the control circuit 16/106/206 applies at least a firstportion of the nonzero drive signal in a boost mode. In step 2003, theaccumulated boost time reaches or exceeds the first defined timethreshold while the nonzero drive signal is being applied in the boostmode, wherein the first nonzero drive signal ends before the accumulatedboost time reaches a defined prolonged total boost time threshold.

FIG. 24B illustrates a nonzero drive signal 2101 that may be repeatedevery 60.65 ms. In other words, the nonzero drive signal 2101 may beused as a template to create nonzero drive signals that are then appliedas voltage signals 2103, 2105, 2107, 2109, 2111, and 2113. In anembodiment, the voltage signal 2103 be a nonzero drive signal that isapplied in a boost mode. While the voltage signal 2103 is applied in theboost mode, the accumulated boost time may reach the first defined timethreshold. In an embodiment, the nonzero drive signal may be like thatin FIG. 24A, in which the first defined time threshold may be 9 ms, andthe defined prolonged total boost time threshold may be 12 ms. Becausethe nonzero drive signal in FIG. 24A ends before t=12 ms, all of thenonzero drive signal is applied in the boost mode, and none of thenonzero drive signal is applied in the amplitude-limited mode.

In an embodiment, after the first nonzero voltage signal in FIG. 24B isapplied as voltage signal 2103 in the boost mode, a cooling timethreshold may be calculated (e.g., 63 ms). When a beginning of a secondnonzero drive signal is received, the accumulated cooling time (e.g.,60.65 ms) is less than the cooling time threshold. Thus, no reset of theaccumulated boost time, accumulated heating time, and accumulatedcooling time is performed. Thus, at a start of the second nonzero drivesignal, the accumulated boost time is determined to be still at orhigher than the first defined time threshold. Based on such adetermination, all of second nonzero drive signal is applied in anamplitude-limited mode as voltage signal 2105. In an embodiment, afteran end of the second nonzero drive signal, the cooling time threshold isnot updated, because the accumulated heating time has not changed sincethe first nonzero drive signal ended.

In an embodiment, when a beginning of the third nonzero drive signal inFIG. 24B is received, the accumulated cooling time may be 121.3 ms,which exceeds the cooling time threshold. As a result, the accumulatedcooling time, accumulated heating time, and accumulated boost time arereset to zero. Because the accumulated boost time is now zero (and thusless than the first defined time threshold), the third nonzero drivesignal may be applied in the boost mode as voltage signal 2107. Theabove steps may repeat for the fourth, fifth, and sixth nonzero drivesignals in order to apply them as voltage signals 2109, 2111, and 2113,respectively.

In an embodiment, as stated above, a nonzero drive signal may finishbefore the accumulated boost time can reach the first defined timethreshold. In such an embodiment, multiple nonzero drive signals can beapplied in the boost mode, and the accumulated boost mode may be trackedacross multiple nonzero drive signals. In some instances, it may beadjusted based on the accumulated heating time. For instance, withreference to FIG. 25, the nonzero drive signal 2301 may be applied inthe boost mode as voltage signal 2311. When the nonzero drive signal2301 ends, the accumulated boost time may be Δt₁ (e.g., 5 ms), which maybe less than the first defined time threshold (e.g., 9 ms). Thus, atleast a portion of the nonzero voltage signal 2303 may be applied in theboost mode, as voltage signal 2313. The nonzero drive signal 2303 may beapplied in the boost mode for a duration of Δt₃, or 4 ms, until thethreshold of 9 ms is reached. At that point the accumulated boost timeis Δt₁+Δt₃. The boost mode may then be exited at an earliest zerocrossing point, or until the accumulated boost time reaches the definedprolonged total boost time threshold.

As stated above, the accumulated boost time may be adjusted at abeginning of a nonzero drive signal. For instance, the accumulated boosttime may be set to be equal to the accumulated heating, after which thenonzero drive signal is applied in a boost mode. In an embodiment, theaccumulated boost time is set to be equal to the accumulated heatingtime minus a fraction (e.g., 1/7) of the accumulated cooling time.

In an embodiment, at least a portion of a nonzero drive signal may beapplied in the boost mode because the accumulated cooling time hasreached or exceeded a second defined time threshold. For instance, FIG.16 illustrates a first nonzero drive signal 2501 being applied in aboost mode as voltage signal 2511, and being followed by a cool-downperiod of Δt₁. At a beginning of receiving a second nonzero drive signal2503, Δt₁ may be, e.g. 40 ms, which exceeds a cooling time threshold(e.g., 7×accumulated heating time of 5 ms=35 m). Thus, the secondnonzero drive signal 2503 is applied in the boost mode as voltage signal2513. Similarly, at a beginning of a third nonzero drive signal 2505,the accumulated cooling time is Δt₂, which is also greater than thecooling time threshold (which may also equal 35 ms), thus triggeringanother reset of the accumulated times, allowing the nonzero drivesignal 2505 to be applied in the boost mode as voltage signal 2515.

FIGS. 27A and 27B provides a flow diagram that illustrates a method 2600of applying nonzero drive signals in an iterative manner. In step 2601,a control circuit 16/106/206 receives a beginning of a current nonzerodrive signal. With reference to, e.g., FIGS. 21A or 21B, the currentnonzero drive signal is nonzero drive signal 1803 or 1903 at aparticular instance in time.

In step 2603, the control circuit updates an accumulated cooling timewith an amount of time between an end time of a most recent nonzerodrive signal that precedes the current nonzero drive signal (alsoreferred to as a most recent preceding nonzero drive signal) and thebeginning of the current nonzero drive signal. With reference to FIG.21A, this step may involve adding Δt_(c) to the accumulated coolingtime. With reference to FIG. 21B, this step may involve adding Δt₁ tothe accumulated cooling time.

In step 2605, after updating the accumulated cooling time, the controlcircuit 16/106/206 determines if the accumulated cooling time hasreached or exceeded a cooling time threshold. In step 2609, in responseto a determination that the accumulated cooling time has reached orexceeded the cooling time threshold, the control circuit 16/106/206resets the accumulated cooling time, the accumulated boost time, and theaccumulated heating time.

In step 2611, the control circuit 16/106/206 determines if theaccumulated boost time has reached or exceeded a first defined timethreshold.

In step 2613, in response to a determination that the accumulated boosttime has reached or does exceed the first defined time threshold, thecontrol circuit 16/106/206 applies the current nonzero drive signal inan amplitude-limited mode. With reference to FIG. 21B, the currentnonzero drive signal 1903 is applied in the amplitude-limited modebecause the accumulated boost time is equal to or greater than the firstdefined time threshold.

In step 2615, in response to a determination that the accumulated boosttime is less than the first defined time threshold, the control circuit16/106/206 applies at least a portion of the current nonzero drivesignal in a boost mode. With reference to FIG. 21A, the current nonzerodrive signal 1803 is applied in the boost mode because the accumulatedboost time has been reset to zero, and is thus less than the firstdefined time threshold.

In step 2617, the control circuit 16/106/206 updates the accumulatedboost time and the accumulated heating time while or after the currentnonzero drive signal is being applied in the boost mode.

In step 2619, after the accumulated heating time has been updated, thecontrol circuit 16/106/206 updates the cooling time threshold based onthe accumulated heating time. In an embodiment, the accumulated boosttime may also be set to be equal to the accumulated heating time (or theaccumulated heating time minus a fraction of the accumulated coolingtime). This may be done in step 2619, or after step 2619. In some cases,if the accumulated boost time is set to be equal to the accumulatedheating time (or the accumulated heating time minus a fraction of theaccumulated cooling time), the accumulated heating time and/or theaccumulated cooling time may afterwards be reset to zero (or some otherreset value). As discussed above, after a nonzero drive signal (e.g.,the current nonzero drive signal) is applied in the boost mode, theaccumulated heating time may be less than the accumulated boost time insome instances. In such instances, if the accumulated boost time hadreached (or exceeded) the first defined time threshold, setting theaccumulated boost time to be equal to the accumulated heating time (orthe accumulated heating time minus a fraction of the accumulated coolingtime) may bring the accumulated boost time under the first definedthreshold again. This may allow the next nonzero drive signal to beapplied in the boost mode for at least a portion thereof (e.g., until anearliest zero crossing is reached).

After step 2619 the method may return to step 2601, and the currentnonzero drive signal (e.g., 1803 or 1903) may now be designated as amost recent preceding nonzero drive signal. When a next successivenonzero drive signal (e.g., 1905 in FIG. 21B) is received at a latertime, it may be designated at that time as the current nonzero drivesignal.

In an embodiment, the accumulated boost time and the accumulated heatingtime are measured from an earliest nonzero drive signal (e.g., 1801 or1901) that is i) after a most recent reset of the accumulated boost timeand the accumulated heating time and ii) applied in the boost mode. Inan embodiment, the accumulated cooling time is measured from an end ofthe earliest nonzero drive signal (e.g., 1801 or 1901) that follows themost recent reset of the accumulated boost time and the accumulatedheating time.

FIG. 28A illustrates a ramp-up portion of a nonzero drive signal. In anembodiment, a ramp-up portion is also boosted if the accumulated boosttime is less than the first defined threshold. FIG. 28B illustrates aramp-down portion of a nonzero drive signal. In an embodiment, theramp-down portion may be boosted if the accumulated boost time is lessthan the first defined time threshold.

In an embodiment, the step of tracking the accumulated boost time may beomitted. Such an embodiment may track the accumulated heating time, anddetect whether the accumulated heating time exceeds the first definedtime threshold. If the accumulated heating time has not exceeded thefirst defined time threshold, the control circuit 16/106/206 may apply anonzero drive signal in the boost mode. If the accumulated heating timehas exceeded or reached the first defined time threshold, the controlcircuit 16/106/206 may apply the nonzero drive signal in theamplitude-limited mode. Such an embodiment may still use the accumulatedheating time to determine the second time threshold (e.g., cooling timethreshold), or may define the second time threshold as always being amultiple of the first defined time threshold (e.g., 7 times the firstdefined time threshold).

Additional discussion of various embodiments of the present disclosureis provided below.

Embodiment 1 relates to a method of applying one or more nonzero drivesignals to a haptic actuator. The method comprises receiving, by acontrol circuit, a nonzero drive signal to be used by the hapticactuator to generate a haptic effect, wherein the haptic actuator has adefined rated maximum voltage or a defined maximum rated current. Themethod further comprises causing, by the control circuit, a firstportion of the nonzero drive signal to be applied to the haptic actuatorin a boost mode, in which the first portion of the nonzero drive signalis scaled to a boosted voltage range or boosted current range, whereinan absolute value of a minimum value or maximum value of the boostedvoltage range or boosted current range exceeds the defined rated maximumvoltage or the defined rated maximum current of the haptic actuator. Thecontrol circuit detects a boost duration exceeding a first defined timethreshold, wherein the boost duration is a duration since a start timeof the boost mode. In response to detecting the boost duration exceedingthe first defined time threshold, the control circuit causes a secondportion of the nonzero drive signal to be applied to the haptic actuatorin an amplitude-limited mode, in which the second portion of the nonzerodrive signal is scaled to an amplitude-limited voltage range oramplitude-limited current range, wherein an absolute value of a minimumvalue or maximum value of the amplitude-limited voltage range or of theamplitude-limited current range does not exceed the defined ratedmaximum voltage or defined rated maximum current of the haptic actuator.

Embodiment 2 includes the method of embodiment 1, wherein detecting thenonzero drive signal comprises detecting a beginning of the nonzerodrive signal, and wherein the start time of the boost mode is thebeginning of the nonzero drive signal.

Embodiment 3 includes the method of embodiment 1 or 2, furthercomprising determining that a cool-down duration, which is a durationfrom an end of a previous nonzero drive signal to the beginning of thenonzero drive signal, exceeds a second defined time threshold, whereinthe previous nonzero drive signal and the nonzero drive signal areconsecutive nonzero drive signals.

Embodiment 4 includes the method of embodiment 1, wherein the nonzerodrive signal is a latest one of a plurality of consecutive nonzero drivesignals that are applied in the boost mode, wherein the start time ofthe boost mode is a beginning of an earliest one of the plurality ofconsecutive nonzero drive signals, and wherein each nonzero drive signalof the plurality of consecutive nonzero drive signals is applied in theboost mode only in response to a determination that a duration from thestart time of the boost mode to the beginning of the respective nonzerodrive signal has not exceeded the first defined time threshold.

Embodiment 5 includes the method of any one of embodiments 1-4, whereinthe nonzero drive signal is detected from an output of a signalgenerator in communication with the control circuit.

Embodiment 6 includes method of any one of embodiments 1-5, furthercomprising: detecting, after an end of the nonzero drive signal, asubsequent nonzero drive signal to be applied to the haptic actuator;determining that a cool-down duration, which is a duration between abeginning of the subsequent nonzero drive signal and an end of aprevious consecutive nonzero drive signal, does not exceed a seconddefined time threshold, wherein the previous nonzero drive signal andthe subsequent nonzero drive signal are consecutive nonzero drivesignals; and in response to determining that the cool-down duration doesnot exceed the second defined time threshold, causing all of thesubsequent nonzero drive signal to be applied in the amplitude-limitedmode.

Embodiment 7 includes the method of any one of embodiments 1-5, furthercomprising: detecting, after an end of the nonzero drive signal, asubsequent nonzero drive signal to be applied to the haptic actuator;determining that a cool-down duration, which is a duration between abeginning of the subsequent nonzero drive signal and an end of aprevious consecutive nonzero drive signal, exceeds a second defined timethreshold, wherein the previous nonzero drive signal and the subsequentnonzero drive signal are consecutive nonzero drive signals; and inresponse to determining that the cool-down duration exceeds the seconddefined time threshold, causing at least a portion of the subsequentnonzero drive signal to be applied in the boost mode.

Embodiment 8 includes the method of embodiment 7, further comprising:updating the start time of the boost mode to be the beginning of thesubsequent nonzero drive signal, such that the start time is an updatedstart time of the boost mode, wherein the subsequent nonzero drivesignal is applied in the boost mode until an end of the subsequentnonzero drive signal, or until a second boost duration exceeds the firstdefined time threshold, the second boost duration being a duration sincethe updated start time of the boost mode.

Embodiment 9 includes the method of any one of embodiments 1-7, whereinthe nonzero drive signal is a periodic signal alternating betweenpositive and negative polarity, the method further comprising: when theboost duration exceeds the first defined time threshold, determiningthat the nonzero drive signal is currently not at a zero crossing point;in response to a determination that the nonzero drive signal is not atthe zero crossing point, applying the nonzero drive signal in anextended boost mode in which the nonzero drive signal continues to bescaled to the boosted voltage range or boosted current range; while thenonzero drive signal is being applied in the extended boost mode,detecting at least one of: i) the nonzero drive signal reaching the zerocrossing point, or ii) an extended boost mode duration exceeding anthird defined time threshold, wherein the extended boost mode durationis a duration since detecting the boost duration exceeding the firstdefined threshold, wherein, in response to detecting the at least one ofthe nonzero drive signal reaching the zero crossing point or theextended boost mode duration exceeding the third defined time threshold,the second portion of the nonzero drive signal begins to be applied inthe amplitude-limited mode.

Embodiment 10 relates to a method of applying one or more nonzero drivesignals to a haptic actuator, the method comprising: receiving, by acontrol circuit, a nonzero drive signal to be applied to the hapticactuator, wherein the haptic actuator has a defined rated maximumvoltage or a defined rated maximum current. The control circuit furthercauses the nonzero drive signal to be applied to the haptic actuator ina boost mode, in which the nonzero drive signal is scaled to a boostedvoltage range or boosted current range, wherein an absolute value of aminimum value or maximum value of the boosted voltage range or boostedcurrent range exceeds the defined rated maximum voltage or defined ratedmaximum current of the haptic actuator. The method further comprisesdetecting, after an end of the nonzero drive signal, a boost durationexceeding a first defined time threshold, wherein the boost duration isa duration since a start time of the boost mode; and detecting, afterthe end of the nonzero drive signal, a subsequent nonzero drive signalto be applied to the haptic actuator, wherein the nonzero drive signaland the subsequent nonzero drive signal are consecutive nonzero drivesignals. The control circuit further causes the subsequent nonzero drivesignal to be applied in an amplitude-limited mode, in which the secondportion of the nonzero drive signal is scaled to an amplitude-limitedvoltage range or amplitude-limited current range, wherein an absolutevalue of a minimum value or maximum value of the amplitude-limitedvoltage range or of the amplitude-limited current range does not exceedthe defined rated maximum voltage or defined rated maximum current ofthe haptic actuator.

Further, embodiment 10 can be combined with any one of the featuresrecited in embodiments 2-5 and 9.

Embodiment 11 includes the method of embodiment 10, wherein thesubsequent nonzero drive signal is applied in the amplitude-limited modeonly in response to a determination that a cool-down duration, which isa duration between the end of the nonzero drive signal and a beginningof the subsequent nonzero drive signal, is less than a second definedtime threshold.

Embodiment 12 relates to a method of applying one or more nonzero drivesignals to a haptic actuator, the method comprising: receiving, by acontrol circuit, a nonzero drive signal to be applied to a hapticactuator, wherein the haptic actuator has a defined rated maximumvoltage or a defined rated maximum current. The control circuit causesthe nonzero drive signal to be applied in a boost mode, in which signalvalues of the nonzero drive signal are scaled to a boosted voltage rangeor a boosted current range, wherein an absolute value of a minimum valueor maximum value of the boosted voltage range or boosted current rangeexceeds the defined rated maximum voltage or defined rated maximumcurrent of the haptic actuator, and wherein the nonzero drive signal isone of one or more nonzero drive signals that are applied in the boostmode. The method further comprises tracking an accumulated boost time,wherein the accumulated boost time is a cumulative amount of time thatthe control circuit has spent applying the one or more nonzero drivesignals while in the boost mode, wherein the accumulated boost time ismeasured from a most recent reset of the accumulated boost time or afterthe most recent reset thereof. The method further comprises tracking anaccumulated heating time, wherein the accumulated heating time is: i) acumulative amount of time in which the one or more nonzero drive signalsin the boost mode have being applied to the haptic actuator at voltagesor currents that exceed, in absolute value, the defined rated maximumvoltage or defined rated maximum current, or ii) a second time that isdetermined by scaling the cumulative amount of time in which the one ormore drive signals in the boost mode have been applied at voltages orcurrents that exceed in absolute value the defined rated maximum voltageor defined rated maximum current. The control circuit further detectsthe accumulated boost time exceeding a first defined time thresholdwhile a first portion of the nonzero drive signal is being applied inthe boost mode. In response to detecting the accumulated boost timeexceeding the first defined time threshold, the control circuit causes asecond portion of the nonzero drive signal to be applied in anamplitude-limited mode, in which the second portion of the nonzero drivesignal is scaled to an amplitude-limited voltage range oramplitude-limited current range, wherein an absolute value of a minimumvalue or maximum value of the amplitude-limited voltage range or of theamplitude-limited current range does not exceed the defined ratedmaximum voltage or defined rated maximum current of the haptic actuator.

Embodiment 13 includes the method of embodiment 12, further comprising:determining a second time threshold based on the accumulated heatingtime; tracking an accumulated cooling time, wherein the accumulatedcooling time is a cumulative amount of time in which the control circuitreceives no nonzero drive signal to be applied to the haptic actuator,and is measured from a most recent reset of the accumulated coolingtime, or after the most recent reset thereof; receiving a subsequentnonzero drive signal after an end of the nonzero drive signal;determining, when the subsequent nonzero drive signal is received,whether the accumulated cooling time has reached or exceeded thedetermined second time threshold that was determined; and applying thesubsequent nonzero drive signal to the haptic actuator in a manner thatis based on whether the accumulated cooling time has reached or exceededthe determined second time threshold.

Embodiment 14 includes the method of embodiment 13, wherein theaccumulated cooling time is determined to have not yet reached thedetermined second time threshold when the subsequent nonzero drivesignal is received, and wherein the subsequent nonzero drive signal isapplied in the amplitude-limited mode.

Embodiment 15 includes the method of embodiment 13, wherein theaccumulated cooling time is determined to have reached or exceeded thedetermined second time threshold when the subsequent nonzero drivesignal is received, and wherein at least a portion of the subsequentnonzero drive signal is applied in the boost mode, wherein the methodfurther comprises resetting the accumulated boost time, the accumulatedheating time, and the accumulated cooling time in response to theaccumulated cooling time reaching or exceeding the determined secondtime threshold, and wherein determining whether the accumulated coolingtime has reached or exceeded the determined second time thresholdcomprises determining whether the accumulated boost time, theaccumulated heating time, and the accumulated cooling time have beenreset.

Embodiment 16 includes the method of any one of embodiments 13-15,wherein the accumulated cooling time is tracked only after theaccumulated heating time increases from a reset heating value to ahigher value, such that the accumulated cooling time is not tracked ifthe accumulated heating time is at the reset heating value.

Embodiment 17 includes the method of any one of embodiments 13-16,wherein the determined second time threshold is determined as a multipleof the accumulated heating time.

Embodiment 18 includes the method of any one of embodiments 13-17,wherein tracking the accumulated heating time comprises updating theaccumulated heating time at or before an end of each of the one or morenonzero drive signals, and the determined second time threshold is alsoupdated based on the accumulated heating time after the accumulatedheating time is updated.

Embodiment 19 includes the method of any one of embodiments 13-18,further comprising determining, at a beginning of each of the one ormore nonzero drive signals, that the accumulated cooling time is lessthan the second time threshold, and that the accumulated boost time isless than the first defined time threshold; and setting, in response todetermining that the accumulated boost time is less than the firstdefined time threshold, the accumulated boost time to be equal to theaccumulated heating time, wherein the accumulated boost time is setbefore the respective nonzero drive signal of the one or more nonzerodrive signals is applied in the boost mode.

Embodiment 20 includes the method of any one of embodiments 13-18,further comprising: determining, at a beginning of each of the one ormore nonzero drive signals, that the accumulated cooling time is lessthan the determined second time threshold, and that the accumulatedboost time is less than the first defined time threshold; and setting,in response to determining that that the accumulated cooling time isless than the determined second time threshold and that the accumulatedboost time is less than the first time defined time threshold, theaccumulated boost time to be equal to the accumulated heating time minusa fraction of the accumulated cooling time, and then resetting theaccumulated heating time and the accumulated cooling time, wherein thesetting of the accumulated boost time and the resetting of theaccumulated heating time and accumulated cooling time are performedbefore the respective nonzero drive signal of the one or more nonzerodrive signals is applied in the boost mode.

Embodiment 21 includes the method of any one of embodiments 12-20,wherein the accumulated heating time is the second time, and isdetermined by multiplying a factor to the cumulative amount of time inwhich the one or more nonzero drive signals in the boost mode have beenapplied at voltages or currents that exceed the defined rated maximumvoltage or defined rated maximum current in absolute value, wherein thefactor is determined based on an arcsine of a ratio between the definedrated maximum voltage or defined rated maximum current of the hapticactuator and the maximum value of the boosted voltage range or boostedcurrent range.

Embodiment 22 includes the method of any one of embodiments 12-21,wherein the nonzero drive signal is a periodic signal alternatingbetween positive and negative polarity, the method further comprising:when the accumulated boost time exceeds the first defined timethreshold, determining that the nonzero drive signal is currently not ata zero crossing point; in response to a determination that the nonzerodrive signal is not at the zero crossing point, continuing to apply thenonzero drive signal by scaling the nonzero drive signal to the boostvoltage range or boost current range until an earlier occurrence of: i)the nonzero drive signal reaching the zero crossing point, or ii) theaccumulated boost time exceeding a defined prolonged total boost timethreshold, after which the second portion second portion of the nonzerodrive signal is immediately applied in the amplitude-limited mode.

Embodiment 23 relates to a method of applying one or more nonzero drivesignals to a haptic actuator, the method comprising: receiving, by acontrol circuit, a nonzero drive signal to be applied to a hapticactuator, wherein the haptic actuator has a defined rated maximumvoltage or current. The control circuit causes the nonzero drive signalto be applied in a boost mode, in which signal values of the nonzerodrive signal are scaled to a boosted voltage range or boosted currentrange, wherein an absolute value of a minimum value or maximum value ofthe boosted voltage range or boosted current range exceeds the definedrated maximum voltage or current of the haptic actuator, and wherein thenonzero drive signal is one of one or more nonzero drive signals thatare applied in the boost mode. The method further comprises tracking anaccumulated boost time, wherein the accumulated boost time is acumulative amount of time that the control circuit has spent applyingthe one or more nonzero drive signals while in the boost mode, whereinthe accumulated boost time is measured from a most recent reset of theaccumulated boost time or after the most recent reset thereof. Themethod further comprises tracking an accumulated heating time, whereinthe accumulated heating time is: i) a cumulative amount of time in whichthe one or more nonzero drive signals in the boost mode have beingapplied to the haptic actuator at voltages or currents that exceed, inabsolute value, the defined rated maximum voltage or current, or ii) asecond time that is determined by scaling the cumulative amount of timein which the one or more drive signals in the boost mode have beenapplied at voltages or currents that exceed in absolute value thedefined rated maximum voltage or current. The control circuit detectsthe accumulated boost time exceeding a first defined time thresholdwhile the nonzero drive signal is being applied in the boost mode. Thecontrol circuit further receives, after an end of the nonzero drivesignal, a subsequent nonzero drive signal. The method further comprisescausing the subsequent nonzero drive signal to be applied in anamplitude-limited mode, in which the subsequent nonzero drive signal isscaled to an amplitude-limited voltage range or amplitude-limitedcurrent range, wherein an absolute value of a minimum value or maximumvalue of the amplitude-limited voltage range or of the amplitude-limitedcurrent range does not exceed the defined rated maximum voltage orcurrent of the haptic actuator, wherein none of the nonzero drive signalis applied in the amplitude-limited mode.

Embodiment 23 may be combined with the features of any one ofembodiments 13, 14, or 16-22.

Embodiment 24 includes the method of embodiment 23, further comprising:after the accumulated boost time exceeds the first defined timethreshold, monitoring the accumulated boost time to detect whether theaccumulated boost time exceeds a defined prolonged total boost timethreshold, wherein the accumulated boost time does not exceed thedefined prolonged total boost time threshold when the nonzero drivesignal ends.

While various embodiments have been described above, it should beunderstood that they have been presented only as illustrations andexamples of the present invention, and not by way of limitation. It willbe apparent to persons skilled in the relevant art that various changesin form and detail can be made therein without departing from the spiritand scope of the invention. Thus, the breadth and scope of the presentinvention should not be limited by any of the above-described exemplaryembodiments, but should be defined only in accordance with the appendedclaims and their equivalents. It will also be understood that eachfeature of each embodiment discussed herein, and of each reference citedherein, can be used in combination with the features of any otherembodiment. All patents and publications discussed herein areincorporated by reference herein in their entirety.

1-20. (canceled)
 21. A non-transitory computer-readable medium havinginstructions that, when executed by a control circuit, causes thecontrol circuit to: receive a nonzero drive signal to be applied to ahaptic actuator; cause a first portion of the nonzero drive signal to beapplied in a boost mode, in which signal values of the first portion ofthe nonzero drive signal are scaled to a boosted voltage range or aboosted current range, wherein a minimum value or maximum value of theboosted voltage range or boosted current range exceeds, in absolutevalue, a defined maximum voltage or defined maximum current; track anaccumulated boost time, wherein the accumulated boost time is acumulative amount of time that the control circuit has spent applyingone or more nonzero drive signals in the boost mode since a most recentreset of the accumulated boost time, the nonzero drive signal being oneof the one or more nonzero drive signals; detect the accumulated boosttime exceeding a first defined time threshold while the nonzero drivesignal is being applied in the boost mode; and in response to detectingthe accumulated boost time exceeding the first defined time threshold,cause a second portion of the nonzero drive signal to be applied in anamplitude-limited mode, in which the second portion of the nonzero drivesignal is scaled to a defined amplitude-limited voltage range or adefined amplitude-limited current range, wherein a minimum value ormaximum value of the amplitude-limited voltage range or of theamplitude-limited current range does not exceed, in absolute value, thedefined maximum voltage or defined maximum current.
 22. Thenon-transitory computer-readable medium of claim 21, wherein theinstructions, when executed by the control circuit, further cause thecontrol circuit to: track an accumulated cooling time, wherein theaccumulated cooling time is a cumulative amount of time in which thecontrol circuit receives no nonzero drive signal to be applied to thehaptic actuator, and is measured from a most recent reset of theaccumulated cooling time, or after the most recent reset thereof;receive a subsequent nonzero drive signal after an end of the nonzerodrive signal; and cause the subsequent nonzero drive signal to beapplied to the haptic actuator in a manner that is based on theaccumulated cooling time.
 23. The non-transitory computer-readablemedium of claim 22, wherein the instructions, when executed by thecontrol circuit, further cause the control circuit to: determine anaccumulated heating measurement that is indicative of an amount by whichthe haptic actuator has been heated by the one or more nonzero drivesignals while in the boost mode; determine a second time threshold basedon the accumulated heating measurement; determine, when the subsequentnonzero drive signal is received, whether the accumulated cooling timehas reached or exceeded the second time threshold, wherein thesubsequent nonzero drive signal is applied to the haptic actuator in amanner that is based on whether the accumulated cooling time has reachedor exceeded the second time threshold.
 24. The non-transitorycomputer-readable medium of claim 23, wherein the instructions, whenexecuted by the control circuit, further cause the control circuit totrack the accumulated cooling time only after the accumulated heatingmeasurement increases from a reset heating value to a higher value, suchthat the accumulated cooling time is not tracked if the accumulatedheating measurement is at the reset heating value.
 25. Thenon-transitory computer-readable medium of claim 23, wherein theaccumulated heating measurement is an accumulated heating time thatmeasures: i) a cumulative amount of time in which the one or morenonzero drive signals in the boost mode have been applied to the hapticactuator at voltages or currents that exceed, in absolute value, thedefined maximum voltage or defined maximum current, or ii) a second timethat is determined by scaling the cumulative amount of time.
 26. Thenon-transitory computer-readable medium of claim 23, wherein theinstructions, when executed by the control circuit, are configured tocause the control circuit to apply the subsequent nonzero drive signalin the amplitude-limited mode in response to a determination that theaccumulated cooling time has not yet reached the second time thresholdwhen the subsequent nonzero drive signal is received.
 27. Thenon-transitory computer-readable medium of claim 23, wherein theinstructions, when executed by the control circuit, are configured tocause the control circuit, in response to a determination that theaccumulated cooling time has reached or exceeded the second timethreshold when the subsequent nonzero drive signal is received, to:apply at least a portion of the subsequent nonzero drive signal in theboost mode, and reset the accumulated boost time, the accumulatedheating time, and the accumulated cooling time.
 28. The non-transitorycomputer-readable medium of claim 21, wherein the second portion of thenonzero drive signal is a remaining portion of the nonzero drive signal,such that the remaining portion of the nonzero drive signal is appliedin the amplitude-limited mode.
 29. The non-transitory computer-readablemedium of claim 21, wherein the nonzero drive signal is a periodicsignal alternating between positive and negative polarity, and whereinthe instructions, when executed by the control circuit, cause thecontrol circuit to: determine, when the accumulated boost time exceedsthe first defined time threshold, whether the nonzero drive signal iscurrently at a zero crossing point; and in response to a determinationthat the nonzero drive signal is currently not at the zero crossingpoint, continue to apply the nonzero drive signal by scaling the nonzerodrive signal to the boost voltage range or boost current range until anearlier occurrence of: i) the nonzero drive signal reaching the zerocrossing point, or ii) the accumulated boost time exceeding a definedprolonged total boost time threshold, after which the second portion ofthe nonzero drive signal is immediately applied in the amplitude-limitedmode.
 30. The non-transitory computer-readable medium of claim 21,wherein the one or more nonzero drive signals comprises a plurality ofnonzero drive signals, and the nonzero drive signal is a latest nonzerodrive signal of the plurality of nonzero drive signals.
 31. Anon-transitory computer-readable medium having instructions that, whenexecuted by a control circuit, cause the control circuit to: track anaccumulated cooling time, wherein the accumulated cooling time is acumulative amount of time in which no nonzero drive signal is applied tothe haptic actuator, and is measured from a most recent reset of theaccumulated cooling time, or after the most recent reset thereof;receive a nonzero drive signal; determine, when the nonzero drive signalis received, whether the accumulated cooling time has reached orexceeded a time threshold; apply the nonzero drive signal to the hapticactuator in a manner that is based on whether the accumulated coolingtime has reached or exceeded the time threshold.
 32. The non-transitorycomputer-readable medium of claim 31, wherein the instructions, whenexecuted by the control circuit, further cause the control circuit, inresponse to a determination that the accumulated cooling time has notyet reached the time threshold when the nonzero drive signal isreceived, to apply the nonzero drive signal in an amplitude-limited modein which the nonzero drive signal is scaled to a definedamplitude-limited voltage range or a defined amplitude-limited currentrange, wherein a minimum value or maximum value of the amplitude-limitedvoltage range or of the amplitude-limited current range does not exceed,in absolute value, a defined maximum voltage or defined maximum current.33. The non-transitory computer-readable medium of claim 31, wherein theinstructions, when executed by the control circuit, further cause thecontrol circuit, in response to a determination that the accumulatedcooling time has reached or exceeded the time threshold when the nonzerodrive signal is received, to apply at least a portion of the nonzerodrive signal in a boost mode in which signal values of the nonzero drivesignal are scaled to a boosted voltage range or a boosted current range,wherein a minimum value or maximum value of the boosted voltage range orboosted current range exceeds, in absolute value, a defined maximumvoltage or defined maximum current.
 34. The non-transitorycomputer-readable medium of claim 31, wherein the instructions, whenexecuted by the control circuit, further cause the control circuit totrack an accumulated heating measurement for at least one or morenonzero drive signals that preceded the nonzero drive signal, whereinthe accumulated heating measurement is indicative of an amount by whichthe haptic actuator has been heated by the one or more nonzero drivesignals while in a boost mode in which signal values of the one or morenonzero drive signals are scaled to a boosted voltage range or a boostedcurrent range, wherein a minimum value or maximum value of the boostedvoltage range or boosted current range exceeds, in absolute value, adefined maximum voltage or defined maximum current, wherein theinstructions cause the control circuit to determine the time thresholdbased on the accumulated heating measurement.
 35. The non-transitorycomputer-readable medium of claim 34, wherein the accumulated heatingmeasurement is an accumulated heating time that measures a cumulativeamount of time in which the one or more nonzero drive signals in theboost mode have been applied to the haptic actuator at voltages orcurrents that exceed, in absolute value, the defined maximum voltage ordefined maximum current, and wherein the instructions cause the controlcircuit to determine the time threshold as a multiple of the accumulatedheating time.
 36. The non-transitory computer-readable medium of claim34, wherein the instructions cause the control circuit to track theaccumulated cooling time only after the accumulated heating measurementincreases from a reset heating value to a higher value, such that theaccumulated cooling time is not tracked if the accumulated heating timeis at the reset heating value.
 37. The non-transitory computer-readablemedium of claim 34, wherein the time threshold is a second timethreshold, and wherein the instructions, when executed by the controlcircuit, further cause the control circuit to: track an accumulatedboost time for the one or more nonzero drive signals, wherein theaccumulated boost time is a cumulative amount of time that the controlcircuit has spent applying the one or more nonzero drive signals in theboost mode since a most recent reset of the accumulated boost time;detect the accumulated boost time exceeding a defined first timethreshold while the one or more nonzero drive signals are being appliedin the boost mode; and in response to detecting the accumulated boosttime exceeding the defined first time threshold, cause any remainingportion of the one or more nonzero drive signals to be applied in anamplitude-limited mode in which the remaining portion is scaled to adefined amplitude-limited voltage range or a defined amplitude-limitedcurrent range, in which a minimum value or maximum value of theamplitude-limited voltage range or of the amplitude-limited currentrange does not exceed, in absolute value, a defined maximum voltage ordefined maximum current.
 38. A non-transitory computer-readable mediumhaving instructions that, when executed by a control circuit, causes thecontrol circuit to: receive one or more nonzero drive signals to beapplied to a haptic actuator; cause the one or more nonzero drivesignals to be applied to the haptic actuator in a boost mode, in whichsignal values of the one or more nonzero drive signals are scaled to aboosted voltage range or a boosted current range, wherein a minimumvalue or maximum value of the boosted voltage range or boosted currentrange exceeds, in absolute value, a defined maximum voltage or definedmaximum current; determine an accumulated heating measurement that isindicative of an amount by which the haptic actuator has been heated bythe one or more nonzero drive signals while in the boost mode; and trackan accumulated cooling time, wherein the accumulated cooling time is acumulative amount of time in which no nonzero drive signal is applied tothe haptic actuator, and is measured from a most recent reset of theaccumulated cooling time, or after the most recent reset thereof. 39.The non-transitory computer-readable medium of claim 38, wherein theinstructions, when executed by the control circuit, further cause thecontrol circuit to: determine a time threshold based on the accumulatedheating measurement; determine, when a subsequent nonzero drive signalis received, whether the accumulated cooling time has reached orexceeded the time threshold; and cause the subsequent nonzero drivesignal to be applied to the haptic actuator based on whether theaccumulated cooling time has reached or exceeded the time threshold. 40.The non-transitory computer-readable medium of claim 39, wherein theaccumulated heating measurement is an accumulated heating time thatmeasures a cumulative amount of time in which the one or more nonzerodrive signals in the boost mode have been applied to the haptic actuatorat voltages or currents that exceed, in absolute value, the definedmaximum voltage or defined maximum current, and wherein the instructionscause the control circuit to determine the time threshold as a multipleof the accumulated heating time.